python中描述器的访问顺序是什么

这篇文章给大家介绍python中描述器的访问顺序是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

专注于为中小企业提供网站制作、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业丹寨免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近1000家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

python的数据类型有哪些?

python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮点型)。2.字符串,分别是str类型和unicode类型。3.布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。4.列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5. 元组,元组用”()”标识,内部元素用逗号隔开。6. 字典,字典是一种键值对的集合。7. 集合,集合是一个无序的、不重复的数据组合。

1、顺序说明

数据描述器 > 实例属性 > 非数据描述器;实例属性 > 类属性。

当存在描述器的时候,一个类实例的查找属性顺序为:先查找类或父类中是否有数据描述器属性,如果有那么,先访问数据描述器,如果没有数据描述器 --> 那么就会查找自己实例的dict属性,如果dict属性里面也没有找到 --> 然后会在类或父类的非数据描述器进行查找。

2、实例

# 例子二
class A:
    def __init__(self):
        self.x = 1
 
    def __get__(self, instance, owner):
      """
      以下两个参数都是「必须参数」,约定使用
      instance: 描述器所在类的实例
      owner:调用描述器的类
      """
        return self.x
 
    def __set__(self, instance, value):
      """
      以下两个参数都是「必须参数」,约定使用
      instance: 描述器所在类的实例
      value:用来设置属性的值
      """
        self.x = value
        
    def __delete__(self, instance):
      """
      以下参数是「必须参数」,约定使用
      instance: 描述器所在类的实例
      """
      pass
 
 
class B:
    def __init__(self):
        self.x = 1
 
    def __get__(self, instance, owner):
        return self.x
 
 
class C:
    a = A()
    b = B()
 
    def __init__(self, a, b):
        self.b = a
        self.b = b

关于python中描述器的访问顺序是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


当前标题:python中描述器的访问顺序是什么
转载来源:http://azwzsj.com/article/pgcohh.html