本文共 1549 字,大约阅读时间需要 5 分钟。
__add__方法
#两个对象相加时,会自动执行第一个对象的__add__方法,并且将第二个对象当做参数传递进入class foo: def __init__(self,name,age): self.name=name self.age=age def __add__(self, other): #return 123 #return self.age+other.age return foo("oo",20) # def __del__(self): # print("析构方法")obj1=foo("jiaxin",10)obj2=foo("lili",9)r=obj1+obj2print(r,type(r))# 123# 19 # <__main__.foo object at 0x0000005CB825ABA8> #__init__是创建对象时执行的函数,__del__在对象被销毁时自动触发执行的,叫析构方法
__dict__方法
#\__dict\__:通过字典的形式显示对象和类的成员#显示对象成员obj3=foo("zhangsan",60)d=obj3.__dict__print(d)# {'name': 'zhangsan', 'age': 60}#显示类的成员print(foo.__dict__) #查看类的成员# {'__module__': '__main__', '__init__':, '__add__': , '__dict__': , '__weakref__': , '__doc__': None}
item方法
#列表支持索引求职list1=[1,2,3,4]r1=list1[2]list1[0]=5list1[1:3:2]del list1[3]class foo1: def __init__(self,name,age): self.name=name self.age=age def __getitem__(self, item): if type(item)==slice: print("做切片处理") else: print("做索引处理") return item def __setitem__(self, key, value): print(key,value) def __delitem__(self, key): print(key)li=foo1("jia",30)r=li[88] #自动执行Li对象中的类的__getitem__方法,88当做参数传递给item#做索引处理print(r) #切片取值和索引取值都执行getitem# 88li[100]=123# 100 123print(li[100])# 110del li[999]# 999print(li[7:20:2],type(li[5:8:2]))# 做切片处理# 做切片处理# slice(7, 20, 2)
转载于:https://blog.51cto.com/10777193/2102972