一、特殊方法和特殊属性
1.1 特殊属性
__dict__:获得类对象或实例对象所绑定的所有属性和方法的字典
1.2 特殊方法:
1.2.1 .__len__:通过重写__len__()方法,让内置函数len()的参数可以是自定义类型 长度
1.2.2 __add__():通过重写__add__()方法,可使用自定义对象具有“+”“功能
1.2.3.__new__():用于创建对象
1.2. 4.__init__():对创建的对象进行初始化
1.3 __add__()
a=100 b=20 c=a+b #两个整数类型的对象相加操作 d=a.__add__(b) #底层逻辑 print(c) print(d)
整数相加的底层语法结构用__add__就是:c=a.__add__(b)
那么我让字符串相加呢?
class Student: def __init__(self,name): self.name=name stu1=Student('张三') stu2=Student('李四') s=stu1+stu2 print(s)
结果错误,怎么办?这个时候就用到了__add__
class Student:
def __init__(self,name):
self.name=name
def __add__(self,other):
return self.name+other.name
stu1=Student('张三')
stu2=Student('李四')
s=stu1+stu2
print(s)
r=stu1.__add__(stu2) print(r)
__add__() 语法结构
1.4__len__()
len(函数对象名) 或者 对象名+.+__len__()
lst=[11,22,33] print(len(lst)) print(lst.__len__())
如果print(len(stu1))的话,那就报错。
所以在上面需要
def __len__(self): return len(self.name)
再print(len(stu1))就可以了
1.5__new__:创建对象
从明天开始起,高强度学习 以后就没有休息喽
打算以后6:00前到实验室,中午睡一小时,晚上10:00回寝室