本文執行個體分析了python的私人屬性和方法。分享給大家供大家參考。具體實現方法如下:
python預設的成員函數和成員變數都是公開的,並且沒有類似別的語言的public,private等關鍵詞來修飾。 在python中定義私人變數只需要在變數名或函數名前加上 "__"兩個底線,那麼這個函數或變數就會為私人的了。 在內部,python使用一種 name mangling 技術,將 __membername替換成 _classname__membername,所以你在外部使用原來的私人成員的名字時,會提示找不到。 比如:
複製代碼 代碼如下:
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()
運行結果是: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()是私人方法。如果直接存取的話,會提示找不到相關的屬性或者方法,但是如果你真要訪問私人的相關資料的話, 也是可以訪問的,嚴格地說,私人方法在它們的類外是可以訪問的,只是不容易 處理。在 Python 中沒有什麼是真正私人的;在內部,私人方法和屬性的名字被忽然改變和恢複,以致於使得它們看上去用它們給定的名字是無法使用的
希望本文所述對大家的Python程式設計有所協助。