您好,登錄后才能下訂單哦!
這篇文章給大家介紹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中描述器的訪問順序是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。