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

python防止隨意修改類(lèi)屬性的實(shí)現(xiàn)方法

 更新時(shí)間:2019年08月21日 08:23:14   投稿:zx  
這篇文章主要介紹了python防止隨意修改類(lèi)屬性的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

如果不想允許隨意修改一個(gè)類(lèi)的某個(gè)屬性,常用的方法是使用property裝飾器以及在屬性前加下劃線。

class V:
  def __init__(self, x): 
    self._x = x
  
  @property
  def x(self):
    return self._x 

雖然這樣是沒(méi)法直接修改x了,但還是可以通過(guò)_x很輕易地修改x。

>>>v = V(5)
>>>v.x
5
>>>v._x
5
>>>v.x = 4
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: cant set attribute
>>>v._x = 4
>>>v.x
4

萬(wàn)一哪天手抖了呢...

但如果使用雙下劃線——

class V:
  def __init__(self,x):
    self.__x = x

  @property
  def x(self):
    return self.__x

>>>v = V(5)
>>>v.__x = 4
>>>v.__x
4
>>>v.x
5

原因在于python的名稱(chēng)改寫(xiě)特性(name mangling)。python會(huì)將以雙下劃線開(kāi)頭的實(shí)例屬性名前加上一個(gè)下劃線和類(lèi)名存入實(shí)例的__dict__屬性中。

>>>v = V(5)
>>>v.__dict__
{'_V__x': 5}
>>>v.__x = 4
>>>v.__dict__
{'_V__x': 5, '__x': 4}

當(dāng)然,修改v.x的值還是可以做到的的,只需通過(guò)修改v._V__x就可以了,不過(guò)誤操作的可能性已經(jīng)降低很多了。

p.s.類(lèi)也有__dict__屬性。

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

相關(guān)文章

  • Python日志采集代碼詳解

    Python日志采集代碼詳解

    這篇文章主要介紹了Python日志采集,在實(shí)際使用python做自動(dòng)化測(cè)試過(guò)程中兩種解決思路都可以使用,且都挺方便,其中對(duì)于思路1,還可以將代碼進(jìn)行更進(jìn)一步的封裝,需要的朋友可以參考下
    2022-05-05
  • Queue 實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型(實(shí)例講解)

    Queue 實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型(實(shí)例講解)

    下面小編就為大家?guī)?lái)一篇Queue 實(shí)現(xiàn)生產(chǎn)者消費(fèi)者模型(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-11-11
  • python Task在協(xié)程調(diào)用實(shí)例講解

    python Task在協(xié)程調(diào)用實(shí)例講解

    在本篇文章里小編給大家整理了一篇關(guān)于python Task如何在協(xié)程調(diào)用的相關(guān)內(nèi)容,有興趣的朋友們可以參考下。
    2021-04-04
  • pytorch 使用加載訓(xùn)練好的模型做inference

    pytorch 使用加載訓(xùn)練好的模型做inference

    今天小編就為大家分享一篇pytorch 使用加載訓(xùn)練好的模型做inference,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python3 Post登錄并且保存cookie登錄其他頁(yè)面的方法

    Python3 Post登錄并且保存cookie登錄其他頁(yè)面的方法

    今天小編就為大家分享一篇Python3 Post登錄并且保存cookie登錄其他頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • 2023年最新版Python?3.12.0安裝使用指南(推薦!)

    2023年最新版Python?3.12.0安裝使用指南(推薦!)

    這篇文章主要給大家介紹了關(guān)于2023年最新版Python?3.12.0安裝使用的相關(guān)資料,Python?現(xiàn)在是非常流行的編程語(yǔ)言,當(dāng)然并不是說(shuō)Python語(yǔ)言性能多么強(qiáng)大,而是Python使用非常方便,特別是現(xiàn)在AI和大數(shù)據(jù)非常流行,用?Python?實(shí)現(xiàn)是非常容易的,需要的朋友可以參考下
    2023-10-10
  • Python繪制指數(shù)概率分布函數(shù)

    Python繪制指數(shù)概率分布函數(shù)

    指數(shù)分布是一種廣泛應(yīng)用于數(shù)據(jù)科學(xué)和統(tǒng)計(jì)學(xué)中的連續(xù)概率分布,本文將詳細(xì)介紹如何在Python中快速上手繪制指數(shù)分布的概率密度函數(shù)圖,需要的可以參考下
    2025-01-01
  • Python實(shí)現(xiàn)數(shù)字的格式化輸出

    Python實(shí)現(xiàn)數(shù)字的格式化輸出

    這篇文章主要介紹了Python如何實(shí)現(xiàn)數(shù)字的格式化輸出,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Python?如何實(shí)現(xiàn)批量轉(zhuǎn)換視頻音頻的采樣率

    Python?如何實(shí)現(xiàn)批量轉(zhuǎn)換視頻音頻的采樣率

    這篇文章主要分享一個(gè)python代碼,可以將多個(gè)視頻中的音頻轉(zhuǎn)化為相同采樣率的視頻,具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2021-11-11
  • PyQt5中QLCDNumber的實(shí)現(xiàn)

    PyQt5中QLCDNumber的實(shí)現(xiàn)

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

最新評(píng)論

牟定县| 平果县| 兰考县| 页游| 新建县| 上虞市| 城市| 石楼县| 舞钢市| 文安县| 银川市| 板桥市| 施秉县| 绍兴县| 重庆市| 神木县| 鹤壁市| 双柏县| 崇文区| 平邑县| 巴彦淖尔市| 揭东县| 磴口县| 濉溪县| 仁化县| 庄浪县| 石嘴山市| 泰宁县| 黄山市| 鄂托克前旗| 榆林市| 崇信县| 龙海市| 宿松县| 克拉玛依市| 贵溪市| 黎城县| 小金县| 广东省| 邳州市| 吐鲁番市|