
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的不同输出
以上就是python中__getattribute__设置属性的方法,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2718/viewspace-2830351/ ,如需转载,请注明出处,否则将追究法律责任。