目录

* 一、__setitem__
<https://www.cnblogs.com/nickchen121/p/10991309.html#一__setitem__>
* 二、__getitem__
<https://www.cnblogs.com/nickchen121/p/10991309.html#二__getitem__>
* 三、__delitem__与__delattr__
<https://www.cnblogs.com/nickchen121/p/10991309.html#三__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'}

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:[email protected]
QQ群:637538335
关注微信