python裡運用私有屬性和方法總結

2022-10-04 17:03:20 字數 2554 閱讀 7293

如何在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私有屬性和私有方法

應用場景 在實際開發中,物件 的 某些屬性或方法 可能只希望 在物件的內部被使用,而 不希望在外部被訪問到 私有屬性 就是 物件 不希望公開的 屬性 私有方法 就是 物件 不希望公開的 方法 定義方式 在 定義屬性或方法時,在 屬性名或者方法名前 增加 兩個下劃線,定義的就是 私有 屬性或方法 不要...