通过 操作字典的方式触发,用item
通过 点 点方式出发,用attr
class Foo: def __getitem__(self, item):#查询,注意item是用于字典的操作 print('getitem',item) print("**getitem中的item就是字典中的key**",self.__dict__[item]) return self.__dict__[item] def __setitem__(self, key, value):#赋值 self.__dict__[key]=value #系统底层的方式 print('setitem') def __delitem__(self, key): print('delitem') self.__dict__.pop(key)#系统底层的方式 f1=Foo() print(f1.__dict__) f1['name']='sxj'#伪装成字典的方式来赋值 f1['age']=18 del f1['name'] print(f1['age']) print(f1.__dict__)
>>>>
{
{}
setitem
setitem
delitem
getitem age
**getitem中的item就是字典中的key** 18
18
{'age': 18}