這篇文章主要介紹了python私有屬性和方法的用法,實例分析了python私有屬性和方法的原理及具體使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例分析了python的私有屬性和方法。分享給大家供大家參考。具體實現(xiàn)方法如下:
python默認(rèn)的成員函數(shù)和成員變量都是公開的,并且沒有類似別的語言的public,private等關(guān)鍵詞來修飾。 在python中定義私有變量只需要在變量名或函數(shù)名前加上 "__"兩個下劃線,那么這個函數(shù)或變量就會為私有的了。 在內(nèi)部,python使用一種 name mangling 技術(shù),將 __membername替換成 _classname__membername,所以你在外部使用原來的私有成員的名字時,會提示找不到。 比如:
復(fù)制代碼 代碼如下:class Person:
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()
運行結(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()是私有方法。如果直接訪問的話,會提示找不到相關(guān)的屬性或者方法,但是如果你真要訪問私有的相關(guān)數(shù)據(jù)的話, 也是可以訪問的,嚴(yán)格地說,私有方法在它們的類外是可以訪問的,只是不容易 處理。在 Python 中沒有什么是真正私有的;在內(nèi)部,私有方法和屬性的名字被忽然改變和恢復(fù),以致于使得它們看上去用它們給定的名字是無法使用的
更多信息請查看IT技術(shù)專欄