__setitem__和__getitem和__delitem__
作者:互联网
目录
- 一、__setitem__
- 二、__getitem__
- 三、__delitem__与__delattr__
class Foo: def __init__(self, name): self.name = name def __getitem__(self, item): print('getitem执行', self.__dict__[item]) def __setitem__(self, key, value): print('setitem执行') self.__dict__[key] = value def __delitem__(self, key): print('del obj[key]时,delitem执行') self.__dict__.pop(key) def __delattr__(self, item): print('del obj.key时,delattr执行') self.__dict__.pop(item) f1 = Foo('sb')
一、__setitem__
- 中括号赋值时触发
f1['age'] = 18 f1['age1'] = 19
setitem执行 setitem执行
二、__getitem__
- 中括号取值时触发
f1['age']
getitem执行 18
f1['name'] = 'tank'
setitem执行
三、__delitem__与__delattr__
- __delitem__:中括号删除时触发
- __delattr__:.删除时触发
del f1.age1 del f1['age']
del obj.key时,delattr执行 del obj[key]时,delitem执行
print(f1.__dict__)
{'name': 'tank'}
标签:__,f1,self,setitem,delitem,key 来源: https://blog.51cto.com/u_13804357/2709209