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

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

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

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

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

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

  • __set__(self, obj, type = None): 在設(shè)置屬性時(shí),將調(diào)用這一方法。
  • __get__(self, obj, value): 在讀取屬性時(shí)將調(diào)用這一方法。
  • __delete__(self, obj): 對(duì)屬性調(diào)用del時(shí)將調(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

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

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

相關(guān)文章

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

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

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

    如何解決pycharm中用matplotlib畫(huà)圖不顯示中文的問(wèn)題

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

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

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

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

    這篇文章主要介紹了關(guān)于Python3的import問(wèn)題(pycharm可以運(yùn)行命令行import錯(cuò)誤),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(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ù)組的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • Django連接MQTT的示例代碼

    Django連接MQTT的示例代碼

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

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

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

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

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

    python Pexpect模塊的使用

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

    PyHacker編寫(xiě)URL批量采集器

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

最新評(píng)論

会泽县| 太白县| 安岳县| 庐江县| 金阳县| 南涧| 肇源县| 珠海市| 纳雍县| 苗栗市| 晋中市| 太原市| 阿城市| 丰镇市| 达拉特旗| 呈贡县| 于田县| 改则县| 鹤庆县| 邢台县| 疏附县| 景洪市| 墨玉县| 织金县| 浦北县| 上饶县| 湖口县| 宁城县| 白银市| 竹山县| 杭锦后旗| 日土县| 郑州市| 阿克| 遵义市| 长乐市| 乐都县| 清镇市| 乌拉特后旗| 柳林县| 荥经县|