码迷,mamicode.com
首页 > 编程语言 > 详细

学习python -- 第015天 类与对象的特殊方法与特殊属性

时间:2021-04-19 15:35:56      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:col   pytho   bsp   alt   code   __add__   base   属性   实现   

特殊属性

 1 #
 2 # @author:浊浪
 3 # @version:0.1
 4 # @time: 2021/4/17 9:34
 5 # 
 6 
 7 
 8 class A:
 9     pass
10 class B:
11     pass
12 class C(A,B):
13     def __init__(self,name,age):
14         self.name = name
15         self.age = age
16 class D(A):
17     pass
18 
19 # 创建C类的对象
20 shili = C(张三, 18)
21 print(shili.__dict__)  # {‘name‘: ‘张三‘, ‘age‘: 18} 输出实例对象的字典
22 print(C.__dict__)  # {‘__module__‘: ‘__main__‘, ‘__init__‘: <function C.__init__ at 0x01A7A8E0>, ‘__doc__‘: None}
23 print(________________________)
24 print(shili.__class__)  # <class ‘__main__.C‘> 输出实例对象的所属类
25 print(C.__bases__)  # (<class ‘__main__.A‘>, <class ‘__main__.B‘>) 输出C的父类
26 print(C.__base__)  # <class ‘__main__.A‘> 输出C的一个父类
27 print(C.__mro__)  # 输出C类的层次结构 (<class ‘__main__.C‘>, <class ‘__main__.A‘>, <class ‘__main__.B‘>, <class ‘object‘>)

 

 

特殊方法

 1 #
 2 # @author:浊浪
 3 # @version:0.1
 4 # @time: 2021/4/17 9:54
 5 # 
 6 
 7 class Student:
 8     def __init__(self, name):
 9         self.name = name
10     def __add__(self, other):
11         return self.name + other.name
12     def __len__(self):
13         return len(self.name)
14 
15 stu1 = Student(张三)
16 stu2 = Student(李四)
17 
18 s = stu1 + stu2  #实现了两个对象的加法运算(因为在Student类中编写_add()特殊的方法)
19 print(s)  # 张三李四
20 x = stu2.__add__(stu1)
21 print(x)  # 李四张三
22 
23 print(----------------------)
24 
25 lst = [11, 22, 33, 44, 55]
26 print(len(lst)) #5
27 print(lst.__len__()) #5
28 print(stu1.__len__()) #2

 

 

技术图片

 

学习python -- 第015天 类与对象的特殊方法与特殊属性

标签:col   pytho   bsp   alt   code   __add__   base   属性   实现   

原文地址:https://www.cnblogs.com/jyf2018/p/14669624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!