您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“如何通過實例解析python描述符原理作用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“如何通過實例解析python描述符原理作用”這篇文章吧。
描述符是一個類,只不過它定義了另一個類中屬性的訪問方式。換句話說,一個類可以將屬性管理全權委托給描述符類。
描述符類基于以下三種特殊方法,換句話說,這三種方法組成了描述符協議:
__set__(self, obj, type = None): 在設置屬性時,將調用這一方法。
__get__(self, obj, value): 在讀取屬性時將調用這一方法。
__delete__(self, obj): 對屬性調用del時將調用這一方法。
其中,實現了setter和getter方法的描述符被稱為數據描述符,反之,如果只實現了getter方法,則稱為非數據描述符。
#描述符類 class revealAccess: def __init__(self, initval = None, name = 'var'): self.val = initval self.name = name def __get__(self, obj, objtype): print("Retrieving", self.name) return self.val def __set__(self, obj, val): print("updating", self.name) self.val = val class myClass: x = revelAccess(10, 'var "x"') y = 5 m = myClass() print(m.x) m.x = 20 print(m.x) print(m.y)
Retrieving var "x" 10 updating var "x" Retrieving var "x" 20 5
如果一個類的某個屬性有數據描述符,那么每次查找這個屬性時,都會調用描述符的__get__()方法,并返回它的值;同樣,每次在對屬性賦值時,也會調用__set__()方法。
當每次使用del類對象.屬性(或者delattr(類對象,屬性))語句時,都會調用該方法。
以上是“如何通過實例解析python描述符原理作用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。