如何在python裡運用私有屬性和方法
class file:
def __init__(self, name):
self.name = name
self.code = "abcdef"
file_a = file("file_a")
#假設我們有乙個類,叫做檔案類,設定乙個物件file_a。
file_a.code
#如果直接呼叫屬性,是可以看到屬性裡面有什麼,但是如果這是個機密的密碼不能公布,是不能這麼處理的。
class file:
def __init__(self, name):
selpzlgtkdtilf.name = name
self.__code = "abcdef"
file_a = file("file_a")
print(file_a.code)
#如果不想密碼公布,可以對屬性的名稱加上__,但是這裡出錯了。
class file:
def __init__(self, name):
self.name = name
self.__codepzlgtkdtil = "abcdef"
file_a = file("file_a")
print(file_a.__code)
#很多人以為是因為外部的名稱打少了__,但是這裡依舊出錯了,那是因為這是私有的屬性。
class file:
def __init__(self, name):
self.name = name
self.__code = "abcdef"
def open(self):
print("this is the aaa file!")
file_a = file("file_a")
file_a.open()
#除了屬性,方法也能私有嗎?答案是可以的。
class file:
def __init__(self, name):
self.name = name
self.__code = "abcdef"
def __open(self):
print("this is the aaa file!")
file_a = file("file_a")
file_a.__open()
#私有方法以後,看出來和私有屬性的返回結果是一致的。
class file:
def __init__(self, name):
self.name = name
self.__code = "abcdef"
def __open(self):
print("this is the aaa file!")
file_a = file("file_a")
print(file_a._file__code)
file_a._file__open()
#在python裡面如果在方法和屬性那裡加上_類名是可以看到私有的屬性和方法的。
知識點擴充套件:
python預設的成員函式和成員變數都是公開的,python 私有屬性和方法沒有類似別的語言的public,private等關鍵詞來修飾。 在python中定義私有變數只需要在變數名或函式名前加上 "__"兩個下劃線,那麼這個函式或變數就會為私有pzlgtkdtil的了。 在內部,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'
我pzlgtkdtil們這裡定義的__name是私有屬性,__get_name()是私有方法。如果直接訪問的話,會提示找不到相關的屬性或者方法,但是如果你真要訪問私 有的相關資料的話, 也是可以訪問的,嚴格地說,私有方法在它們的類外是可以訪問的,只是不容易 處理。在 python 中沒有什麼是真正私有的;在內部,私有方法和屬性的名字被忽然改變和恢復,以致於使得它們看上去用它們給定的名字是無法使用的
本文標題: python裡運用私有屬性和方法總結
本文位址: /jiaoben/python/264905.html
python 私有屬性和視為私有屬性
python模組中的視為私有屬性 總的來說,python中有 幾種特殊的屬性 在python模組中,我們經常會見到 x 其中後面兩種 x 是習慣上的私有變數,我們不應該在外部使用它,而是應該通過呼叫內部函式來使用,但這裡是不應該而不是不能,所以要靠我們自覺遵守這個標準,另外,在自定義模組的時候,也要...
python 私有屬性和私有方法
關於私有屬性和私有方法,1.兩個下劃線開頭的屬性是私有的 private 其他為公共的 public 2.類內部可以訪問私有屬性 方法 3.類外部不能直接訪問私有屬性 方法 4.類外部可以通過 類名 私有屬性 方法 名 訪問私有屬性 方法 私有屬性和私有方法在類中可以呼叫 在外部訪問時用 類名 物件...
Python私有屬性和私有方法
應用場景 在實際開發中,物件 的 某些屬性或方法 可能只希望 在物件的內部被使用,而 不希望在外部被訪問到 私有屬性 就是 物件 不希望公開的 屬性 私有方法 就是 物件 不希望公開的 方法 定義方式 在 定義屬性或方法時,在 屬性名或者方法名前 增加 兩個下劃線,定義的就是 私有 屬性或方法 不要...