这篇文章给大家分享的是有关Python对象属性查找顺序是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析,人工智能,Web开发等。
1、查找顺序
(1)类和父类字典的数据描述器
(2)实例字典
(3)类和父类字典中的非数据描述器
无论类有多少个继承级别,该类对象的实例字典总是存储了所有的实例变量,这也是 super 的意义之一。
2、实例
def get_attribute(obj, name):
class_definition = obj.__class__
descriptor = None
for cls in class_definition.mro():
if name in cls.__dict__:
descriptor = cls.__dict__[name]
break
if hasattr(descriptor, '__set__'):
return descriptor, 'data descriptor'
if name in obj.__dict__:
return obj.__dict__[name], 'instance attribute'
if descriptor is not None:
return descriptor, 'non-data descriptor'
else:
raise AttributeError
感谢各位的阅读!关于“Python对象属性查找顺序是怎么样的”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://www.py.cn/jishu/jichu/27859.html