189 8069 5689

创新互联Python教程:Python对象属性的查找顺序

1、查找顺序

成都创新互联基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业成都服务器托管报价,主机托管价格性价比高,为金融证券行业服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

(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对象属性的查找顺序,希望对大家有所帮助。更多Python学习推荐:python教学

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。


文章名称:创新互联Python教程:Python对象属性的查找顺序
URL链接:http://cdxtjz.cn/article/cdiesco.html

其他资讯