目录
- 一、__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'}