item系列

__getitem__(self, item)            对象通过 object[key] 触发
__setitem__(self, key, value)    对象通过 object[key] = value 触发
__delitem__(self, key)            对象通过 del object[key] 触发

 

class Func:
    def __getitem__(self, item):
        # object[item] 触发
        return self.__dict__[item]

    def __setitem__(self, key, value):
        # object[key] = value 触发
        self.__dict__[key] = value

    def __delitem__(self, key):
        # del object[key] 触发
        print('delitem: 删除key')
        del self.__dict__[key]

    def __delattr__(self, item):
        # del object.item 触发
        print('delattr: 删除key')
        del self.__dict__[item]


f = Func()
f['name'] = 'hkey'  # __setitem__
f['age'] = 20   # __setitem__
print(f.name)   # 对象属性原本的调用方式
print(f['name'])    # __getitem__
del f['name']   # __delitem__
print('------')
del f.age   # __delattr__
item系列实例

相关文章: