勵志

勵志人生知識庫

什麼是描述符

描述符Python中的一個高級特性,用於控制對象的屬性的賦值、查找以及刪除。

描述符是一個實現了特定協定的對象,這個協定包括__get__()、__set__()和__delete__()方法。當在類中定義了一個描述符,Python會在訪問該屬性時使用描述符中定義的行為,而不是直接訪問對象的字典。描述符的本質是一個類,在這個類中至少實現了一個上述方法,這也被稱為描述符協定。描述符的作用是用來代理另外一個類的屬性,必須把描述符定義成一個類的類屬性,不能定義到構造函式中。描述符分為兩種,一種是數據描述符:至少實現了__get__()和__set__();另一種是非數據描述符:沒有實現__set__()。描述符是實現大部分Python類特性中最底層的數據結構的實現手段,我們常使用@classmethod、@staticmethd、@property、甚至是__slots__等屬性都是通過描述符來實現的。