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

Python中私有屬性的定義方式

 更新時間:2020年03月05日 09:07:46   作者:Daniel2333  
這篇文章主要介紹了Python中私有屬性的定義方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Python沒有類似于Java的private關(guān)鍵字, 但也可以為類定義私有屬性. 只需將屬性命名變?yōu)橐訽_開頭, 例如 __field.

示例代碼:

class Vector2D(object):
  def __init__(self, x, y):
    self.__x = float(x)
    self.__y = float(y)
    self.xx = x
    self.yy = y 
  def get_x(self):
    return self.__x # 內(nèi)部訪問
if __name__ == "__main__":
  v = Vector2D(3, 4)
  print v.__dict__
  print v._Vector2D__x, v.get_x()# 但是可以通過v._Vector2D__x 在外部訪問
  v.__x # 外部訪問

輸出:

{'yy': 4, 'xx': 3, '_Vector2D__x': 3.0, '_Vector2D__y': 4.0}
3.0 3.0
Traceback (most recent call last):
...
v.__x
AttributeError: 'Vector2D' object has no attribute '__x'

從上面的例子可以看出:

1. __field被編譯器重命名為_className__field

2. 在class外部不能訪問obj.__field, 但在class內(nèi)部可以

3. 但是, 這只能防止無意間的調(diào)用, 不能防止惡意調(diào)用, 用Fluent Python的話來講, 這是一種safety device, not security device, 用國語來講, 就是防君子不防xx, 因為可以通過obj._className__field在外部訪問obj的私有__field.

補充知識:python中私有屬性和私有方法,修改私有屬性的值

如果一個屬性是以兩個下劃線開始 就標識這個這個屬性是一個私有屬性

self.__money = 1000000

如果一個方法是以兩個下劃線開始 也代表已經(jīng)私有

子類繼承了父類 如果父類的屬性私有 將不會被子類繼承

私有屬性和私有方法可以在類的里面使用

自定義類中 如果一個屬性進行了私有 在類的外面不能調(diào)用

修改私有屬性的值

如果需要修改一個對象的屬性值,通常有2種方法

對象名.屬性名 = 數(shù)據(jù) ----> 直接修改

對象名.方法名() ----> 間接修改

私有屬性不能直接訪問,所以無法通過第一種方式修改,一般的通過第二種方式修改私有屬性的值:定義一個可以調(diào)用的公有方法,在這個公有方法內(nèi)訪問修改。

class Person(object):
 
  def __init__(self):
    self.name = "小明"
    self.__age = 20
 
  #獲取私有屬性的值
  def get_age(self):
    return self.__age
 
  #設(shè)置私有屬性的值
  def set_age(self, new_age):
    self.__age = new_age
 
 
#定義一個對象
p = Person()
#強行獲取私有屬性
#崇尚一切靠自覺
print(p._Person__age)
print(p.name)
#想在類的外面獲取對象的屬性
ret = p.get_age()
print(ret)
 
#想在類的外面修改對象私有屬性的值
p.set_age(30)
print(p.get_age())

以上這篇Python中私有屬性的定義方式就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • pycharm?將python文件打包為exe格式的方法

    pycharm?將python文件打包為exe格式的方法

    今天小編就為大家分享一篇pycharm?將python文件打包為exe格式的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • python 利用pyttsx3文字轉(zhuǎn)語音過程詳解

    python 利用pyttsx3文字轉(zhuǎn)語音過程詳解

    這篇文章主要介紹了python 利用pyttsx3文字轉(zhuǎn)語音過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • django正續(xù)或者倒序查庫實例

    django正續(xù)或者倒序查庫實例

    這篇文章主要介紹了django正續(xù)或者倒序查庫實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python?數(shù)據(jù)篩選功能實現(xiàn)

    Python?數(shù)據(jù)篩選功能實現(xiàn)

    這篇文章主要介紹了Python?數(shù)據(jù)篩選,無論是在數(shù)據(jù)分析還是數(shù)據(jù)挖掘的時候,數(shù)據(jù)篩選總會涉及到,這里我總結(jié)了一下python中列表,字典,數(shù)據(jù)框中一些常用的數(shù)據(jù)篩選的方法,需要的朋友可以參考下
    2023-04-04
  • Python使用pypandoc將markdown文件和LaTex公式轉(zhuǎn)為word

    Python使用pypandoc將markdown文件和LaTex公式轉(zhuǎn)為word

    pypandoc 是一個用于 pandoc 的輕量級 Python 包裝器,支持多種格式的文檔轉(zhuǎn)換,下面我們來看看如何使用pypandoc將markdown文件和LaTex公式轉(zhuǎn)為word吧
    2025-04-04
  • python使用matplotlib的savefig保存時圖片保存不完整的問題

    python使用matplotlib的savefig保存時圖片保存不完整的問題

    這篇文章主要介紹了python使用matplotlib的savefig保存時圖片保存不完整的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • django富文本編輯器的實現(xiàn)示例

    django富文本編輯器的實現(xiàn)示例

    這篇文章主要介紹了django富文本編輯器的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • 詳解Python OpenCV圖像分割算法的實現(xiàn)

    詳解Python OpenCV圖像分割算法的實現(xiàn)

    圖像分割是指根據(jù)灰度、色彩、空間紋理、幾何形狀等特征把圖像劃分成若干個互不相交的區(qū)域。本文就來和大家聊聊OpenCV的圖像分割算法及基于輪廓的字符分離,感興趣的可以了解一下
    2022-08-08
  • 解決Python2.7讀寫文件中的中文亂碼問題

    解決Python2.7讀寫文件中的中文亂碼問題

    下面小編就為大家分享一篇解決Python2.7讀寫文件中的中文亂碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python一行代碼實現(xiàn)生成和讀取二維碼

    Python一行代碼實現(xiàn)生成和讀取二維碼

    二維碼被稱為快速響應(yīng)碼,可能看起來很簡單,但它們能夠存儲大量數(shù)據(jù)。無論掃描二維碼時包含多少數(shù)據(jù),用戶都可以立即訪問信息。本文將用一行Python代碼實現(xiàn)二維碼的讀取與生成,需要的可以參考一下
    2022-02-02

最新評論

洛扎县| 雷山县| 贵德县| 田东县| 班戈县| 遂平县| 汽车| 邢台市| 轮台县| 桃源县| 伊吾县| 济宁市| 巴楚县| 北京市| 孟州市| 西和县| 商都县| 防城港市| 临西县| 白河县| 陆良县| 永胜县| 乌兰县| 凌云县| 屏南县| 西丰县| 米脂县| 英德市| 都江堰市| 荥阳市| 来安县| 玛多县| 武强县| 马龙县| 南投市| 信丰县| 碌曲县| 崇左市| 信宜市| 铜梁县| 大埔县|