python 描述符基本

2021-09-26 14:54:31 字數 755 閱讀 2651

相關資料

python的描述符 - 下一站,我等你 -

描述符的本質類

python為開發者提供了乙個非常強大的功能——描述符。那什麼是描述符呢?通過檢視python的官方文件,我們知道把實現了__get__()、__set__()和__delete__()中的其中任意一種方法的類稱之為描述符,描述符的本質是新式類,並且被**的類(即應用描述符的類)也是新式類。描述符的作用是用來**乙個類的屬性,需要注意的是描述符不能定義在類的建構函式中,只能定義為類的屬性,它只屬於類的,不屬於例項,我們通過檢視例項和類的字典即可知曉。

描述符是可以實現大部分python類特性中最底層的資料結構的實現手段,我們常使用的@classmethod、@staticmethd、@property、甚至是__slots__等屬性都是通過描述符來實現的。它是很多高階庫和框架的重要工具之一,是使用到裝飾器或者元類的大型框架中的乙個非常重要元件。在一般的開發中我們可能用不到描述符,但是我們如果想要開發乙個大型的框架或者大型的系統,那使用描述符會起到如虎添翼的作用。它的加盟將會使得系統更加完美。

描述符分為資料描述符和非資料描述符。

》資料描述符

把至少實現了內建屬性__set__()和__get__()方法的描述符稱為資料描述符;

》非資料描述符

把實現了除__set__()以外的方法的描述符稱為非資料描述符。

python 描述 python描述符

在python中,訪問乙個屬性的優先順序順序按照如下順序 1.類屬性2.資料描述符3.例項屬性4.非資料描述符5.getattr 方法。描述符,用一句話來說,就是將某種特殊型別的類的例項指派給另乙個類的屬性 注意 這裡是類屬性,而不是物件屬性 而這種特殊型別的類就是實現了 get set delet...

Python 描述符練習

要求 先定義乙個溫度類,然後定義兩個描述符用於描述攝氏度和華氏度兩個屬性 要求這個兩個屬性會自動進行轉換,也就是說你可以給攝氏度這個屬性賦值,然後列印的話華氏屬性是自動轉換的結果 class celsius def init self,value 26.0 self.value float valu...

Python高階 描述符

什麼是描述符 如果乙個類實現了 get set delete 中的任意一種方法的類,用這個類建立的物件叫做描述符物件 描述符物件賦值給另乙個類的類屬性,那麼這個類就是描述符 描述符分為兩種 1.資料描述符 同時定義了 get 和 set 方法的描述符稱為資料描述符 2.非資料描述符 只定義了 get...