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')
1、__setitem__
f1['age'] = 18
f1['age1'] = 19
setitem執行
setitem執行
2、__getitem__
f1['age']
getitem執行 18
f1['name'] = 'tank'
setitem執行
3、__delitem__與__delattr__
- __delitem__:中括號刪除時觸發
- __delattr__:.刪除時觸發
del f1.age1
del f1['age']
del obj.key時,delattr執行
del obj[key]時,delitem執行
print(f1.__dict__)
{'name': 'tank'}