最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

通過實(shí)例解析python描述符原理作用

 更新時間:2020年01月22日 09:27:08   投稿:yaominghui  
這篇文章主要介紹了通過實(shí)例解析python描述符原理作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

這篇文章主要介紹了通過實(shí)例解析python描述符原理作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

本質(zhì)上看,描述符是一個類,只不過它定義了另一個類中屬性的訪問方式。換句話說,一個類可以將屬性管理全權(quán)委托給描述符類。

描述符類基于以下三種特殊方法,換句話說,這三種方法組成了描述符協(xié)議:

  • __set__(self, obj, type = None): 在設(shè)置屬性時,將調(diào)用這一方法。
  • __get__(self, obj, value): 在讀取屬性時將調(diào)用這一方法。
  • __delete__(self, obj): 對屬性調(diào)用del時將調(diào)用這一方法。

其中,實(shí)現(xiàn)了setter和getter方法的描述符被稱為數(shù)據(jù)描述符,反之,如果只實(shí)現(xiàn)了getter方法,則稱為非數(shù)據(jù)描述符。

#描述符類
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

如果一個類的某個屬性有數(shù)據(jù)描述符,那么每次查找這個屬性時,都會調(diào)用描述符的__get__()方法,并返回它的值;同樣,每次在對屬性賦值時,也會調(diào)用__set__()方法。
當(dāng)每次使用del類對象.屬性(或者delattr(類對象,屬性))語句時,都會調(diào)用該方法。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python中優(yōu)雅地處理JSON5文件的方法詳解

    Python中優(yōu)雅地處理JSON5文件的方法詳解

    JSON5 是 JSON 的一個超集,通過引入部分 ECMAScript 5.1 的特性來擴(kuò)展 JSON 的語法,以減少 JSON 格式的某些限制,同時,保持兼容現(xiàn)有的 JSON 格式,本文給大家介紹了Python中如何優(yōu)雅地處理 JSON5 文件,需要的朋友可以參考下
    2024-04-04
  • 如何解決pycharm中用matplotlib畫圖不顯示中文的問題

    如何解決pycharm中用matplotlib畫圖不顯示中文的問題

    這篇文章主要介紹了如何解決pycharm中用matplotlib畫圖不顯示中文的問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-06-06
  • python模塊hashlib(加密服務(wù))知識點(diǎn)講解

    python模塊hashlib(加密服務(wù))知識點(diǎn)講解

    在本篇文章里小編給大家分享的是關(guān)于python模塊hashlib(加密服務(wù))知識點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-11-11
  • 關(guān)于Python3的import問題(pycharm可以運(yùn)行命令行import錯誤)

    關(guān)于Python3的import問題(pycharm可以運(yùn)行命令行import錯誤)

    這篇文章主要介紹了關(guān)于Python3的import問題(pycharm可以運(yùn)行命令行import錯誤),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • DataFrame 將某列數(shù)據(jù)轉(zhuǎn)為數(shù)組的方法

    DataFrame 將某列數(shù)據(jù)轉(zhuǎn)為數(shù)組的方法

    下面小編就為大家分享一篇DataFrame 將某列數(shù)據(jù)轉(zhuǎn)為數(shù)組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Django連接MQTT的示例代碼

    Django連接MQTT的示例代碼

    本文主要介紹了Django連接MQTT的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • Python實(shí)現(xiàn)繪制凸包的示例代碼

    Python實(shí)現(xiàn)繪制凸包的示例代碼

    凸包(Convex Hull)是一個計(jì)算幾何(圖形學(xué))中的概念。這篇文章主要為大家詳細(xì)介紹了Python繪制凸包的示例代碼,感興趣的小伙伴可以了解一下
    2023-05-05
  • Python PyQt5模塊實(shí)現(xiàn)一個瀏覽器的示例代碼

    Python PyQt5模塊實(shí)現(xiàn)一個瀏覽器的示例代碼

    在項(xiàng)目開發(fā)中,有的應(yīng)用程序可以運(yùn)行在web瀏覽器,本文主要介紹了Python PyQt5模塊實(shí)現(xiàn)一個瀏覽器的示例代碼,分享給大家,感興趣的可以了解一下
    2021-07-07
  • python Pexpect模塊的使用

    python Pexpect模塊的使用

    這篇文章主要介紹了python Pexpect模塊的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • PyHacker編寫URL批量采集器

    PyHacker編寫URL批量采集器

    這篇文章主要為大家介紹了SpringBoot整合VUE?EasyExcel實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入導(dǎo)出,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05

最新評論

津南区| 博兴县| 泊头市| 大厂| 司法| 北安市| 遂昌县| 石河子市| 乌兰察布市| 黄龙县| 荔波县| 荔浦县| 苏州市| 盐边县| 枞阳县| 金川县| 扶绥县| 太白县| 嘉兴市| 营山县| 墨竹工卡县| 宜州市| 射洪县| 介休市| 呼图壁县| 郓城县| 木兰县| 鸡东县| 台安县| 体育| 沛县| 承德市| 阜新市| 南宫市| 叶城县| 贵港市| 山东省| 浠水县| 花莲市| 吉木乃县| 宣武区|