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

特殊属性

 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天 类与对象的特殊方法与特殊属性

 

上一篇:jquery模板下载网站


下一篇:maven_spring mvc_mina_dome(实体,文件,批传)(spring mina 初学dome)