日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
創(chuàng)新互聯(lián)Python教程:python描述器的訪問順序

本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。

1、順序說明

數(shù)據(jù)描述器 > 實(shí)例屬性 > 非數(shù)據(jù)描述器;實(shí)例屬性 > 類屬性。

當(dāng)存在描述器的時(shí)候,一個(gè)類實(shí)例的查找屬性順序?yàn)椋合炔檎翌惢蚋割愔惺欠裼袛?shù)據(jù)描述器屬性,如果有那么,先訪問數(shù)據(jù)描述器,如果沒有數(shù)據(jù)描述器 --> 那么就會(huì)查找自己實(shí)例的dict屬性,如果dict屬性里面也沒有找到 --> 然后會(huì)在類或父類的非數(shù)據(jù)描述器進(jìn)行查找。

2、實(shí)例

# 例子二
class A:
    def __init__(self):
        self.x = 1
 
    def __get__(self, instance, owner):
      """
      以下兩個(gè)參數(shù)都是「必須參數(shù)」,約定使用
      instance: 描述器所在類的實(shí)例
      owner:調(diào)用描述器的類
      """
        return self.x
 
    def __set__(self, instance, value):
      """
      以下兩個(gè)參數(shù)都是「必須參數(shù)」,約定使用
      instance: 描述器所在類的實(shí)例
      value:用來設(shè)置屬性的值
      """
        self.x = value
        
    def __delete__(self, instance):
      """
      以下參數(shù)是「必須參數(shù)」,約定使用
      instance: 描述器所在類的實(shí)例
      """
      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

上面在class C中,分別定義了資料描述器和非資料描述器a,b以及同名的實(shí)例屬性,進(jìn)行以下輸出測(cè)試,發(fā)現(xiàn)實(shí)例c只存在實(shí)例屬性b,不存在實(shí)例屬性a,說明其確實(shí)是被資料描述器,即類屬性a給屏蔽了。

以上就是python描述器的訪問順序,大家如果怕記憶混淆,可以記得數(shù)據(jù)訪問器在最前面就行了。對(duì)于訪問順序的理解,大家不妨運(yùn)行實(shí)例代碼測(cè)試。


當(dāng)前題目:創(chuàng)新互聯(lián)Python教程:python描述器的訪問順序
網(wǎng)頁網(wǎng)址:http://www.dlmjj.cn/article/djchgsp.html