python私有屬性和方法實(shí)例分析
本文實(shí)例分析了python的私有屬性和方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:
python默認(rèn)的成員函數(shù)和成員變量都是公開的,并且沒有類似別的語言的public,private等關(guān)鍵詞來修飾。 在python中定義私有變量只需要在變量名或函數(shù)名前加上 "__"兩個(gè)下劃線,那么這個(gè)函數(shù)或變量就會(huì)為私有的了。 在內(nèi)部,python使用一種 name mangling 技術(shù),將 __membername替換成 _classname__membername,所以你在外部使用原來的私有成員的名字時(shí),會(huì)提示找不到。 比如:
def __init__(self):
self.__name = 'haha'#私有屬性
self.age = 22
def __get_name(self):##私有方法
return self.__name
def get_age(self):
return self.age
person = Person()
print person.get_age()
print person.__get_name()
運(yùn)行結(jié)果是:22 Traceback (most recent call last): File "E:\pythoner\zenghe\jay.py", line 38, in print person.__get_name() AttributeError: Person instance has no attribute '__get_name'
我們這里定義的__name是私有屬性,__get_name()是私有方法。如果直接訪問的話,會(huì)提示找不到相關(guān)的屬性或者方法,但是如果你真要訪問私有的相關(guān)數(shù)據(jù)的話, 也是可以訪問的,嚴(yán)格地說,私有方法在它們的類外是可以訪問的,只是不容易 處理。在 Python 中沒有什么是真正私有的;在內(nèi)部,私有方法和屬性的名字被忽然改變和恢復(fù),以致于使得它們看上去用它們給定的名字是無法使用的
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
如何用python寫一個(gè)簡(jiǎn)單的詞法分析器
這篇文章主要介紹了如何用python寫一個(gè)簡(jiǎn)單的詞法分析器,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12python爬取晉江文學(xué)城小說評(píng)論(情緒分析)
這篇文章主要介紹了使用python爬取晉江文學(xué)城小說評(píng)論(情緒分析),全文代碼詳細(xì),邏輯清晰,很適合學(xué)習(xí)爬蟲爬取的朋友,需要的朋友可以參考下2021-04-04python實(shí)現(xiàn)繪制樹枝簡(jiǎn)單示例
這篇文章主要介紹了python實(shí)現(xiàn)繪制樹枝簡(jiǎn)單示例,有助于讀者加深對(duì)Python繪圖的認(rèn)識(shí),需要的朋友可以參考下2014-07-07python-opencv 中值濾波{cv2.medianBlur(src, ksize)}的用法
這篇文章主要介紹了python-opencv 中值濾波{cv2.medianBlur(src, ksize)}的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2021-06-06python單線程文件傳輸?shù)膶?shí)例(C/S)
今天小編就為大家分享一篇python單線程文件傳輸?shù)膶?shí)例(C/S),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-02-02