item系列

class Foo:
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex= sex
    def __getitem__(self, item):
        if hasattr(self,item):
            return self.__dict__[item]
    def __setitem__(self, key, value):
        self.__dict__[key] = value
    def __delitem__(self, key):
        print("执行 delitem")
        del self.__dict__[key]
    def __delattr__(self, item):
        print("执行 delattr")
        self.__dict__.pop(item)
f = Foo("alex",22,"M")
print(f["name"]) #f["name"]自动触发__getitem__方法
f["role"] = "teacher" #自动触发__setitem__方法
del f["role"]  #对应__delitem__方法  必须重写__delitem__方法
del f.role #对应__delattr__ 不必重写 object原生支持
原文地址:https://www.cnblogs.com/superniao/p/10073055.html