1、说明
这个方法将会拦截所有获取的属性的操作,包括未定义的属性;
属性内置函数允许我们将方法与特定类属性的获取和集合操作相关联;
属性描述符为特定的类的属性提供了一组__get__和 __set__方法访问协议;
实例属性在类中声明但是在每一个类的对象实例中隐式存储。
2、实例
class AttrManager: def __getattribute__(self, item): """ :param item: :return: 避免产生递归循环引用,不要使用self.attr_name对属性进行访问或者设置,属性访问会经过这个方法 这里没有保存数据,因此返回的时候是None """ print("call __getattribute__ for item[%s] " % item)def test_attr_manager(): manager = AttrManager() manager.name = "attr manager name" print(manager.name) print(manager.age)if __name__ == '__main__': test_attr_manager()>>> python attr.py # 2.x与3.x的不同输出
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试