双下方法 使用类似于字典的操作方法,可以将对象用字典的方式进行操作
dic = {} dic['k'] = 'v' class Foo: def __init__(self,name): self.name = name def __getitem__(self, item): #返回属性 if hasattr(self,item): return self.__dict__[item] def __setitem__(self, key, value): #创建属性 self.__dict__[key] = value def __delitem__(self, key): #删除属性 del self.__dict__[key] f = Foo('gao') #实例化对象 print(f['name']) #方括号先调用 f['sex'] = '男' print(f.sex,f['sex']) del f['sex'] print(f.sex) #报错没有
__init__ 初始化方法
构造方法:创建一个对象
class A: def __init__(self,name): self.name = name def __new__(cls, *args, **kwargs): print(111) a = A('lalala') #会先执行new中的111