91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何通過實例解析python描述符原理作用

發布時間:2021-07-24 09:19:36 來源:億速云 閱讀:112 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“如何通過實例解析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描述符原理作用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

汾阳市| 丁青县| 屏东市| 海南省| 大埔县| 章丘市| 五台县| 尼木县| 宁城县| 南岸区| 南陵县| 中西区| 铁岭县| 南阳市| 金塔县| 泗阳县| 绍兴县| 饶河县| 河曲县| 九龙县| 乡宁县| 全南县| 婺源县| 汨罗市| 集贤县| 静乐县| 海安县| 大兴区| 大连市| 黄骅市| 金昌市| 富锦市| 甘泉县| 宁安市| 壤塘县| 齐齐哈尔市| 鄢陵县| 同心县| 保德县| 张家界市| 铁力市|