Python之__getitem__、__getattr__、__setitem__ 、__setitem__ 的区别
class LoggedMappingMixin: __slots__ = () # 混入类都没有实例变量,因为直接实例化混入类没有任何意义 ''' __getitem__(self,key):返回键对应的值。 __setitem__(self,key,value):设置给定键的值 __delitem__(self,key):删除给定键对应的元素。 __getattr__内置使用点号获取实例属性属性如 s.name,自调用__getattr__ __setattr__设置类实例属性 如s.name='tom',自调用__setattr__ __getitem__ 使用[]获取实例属性 如s['name'],自调用__getitem__ __setitem__ 使用[]设置实例属性如 s['name'] = 'tom' ,自调用__setitem__ __dict__ 为参数字典 ''' def __getitem__(self, key): print('Getting ' + str(key)) return super().__getitem__(key)