xx:公有變數
_xx:公有變數或方法,不能通過import匯入其他模組(只有模組內部使用)。類物件和子類可以訪問
__xx:私有變數或方法(偽私有),類外部不能直接訪問。
__xx__:公有變數或方法,子類可以訪問。魔法方法或屬性(例如:__init__),不推薦這樣命名。
xx_:公有變數或方法。一般為了避免和python關鍵字衝突,不推薦這樣命名。
在 定義屬性或方法時,在 屬性名或者方法名前 增加 兩個下劃線,定義的就是 私有 屬性或方法
demo.py(私有屬性,私有方法):
class women:
# 定義屬性和方法時,屬性名或方法名前增加兩個下劃線__表示私有屬性或私有方法
def __init__(self, name):
self.name = name # 公有屬性,外界可以直接訪問
self.__age = 18 # 私有屬性,外界及其子類不能直接訪問
# 私有方法,外界不能直接訪問
def __secret(self):
# 物件內部可以直接訪問物件的私有屬性
print("%s 的年齡是 %d" % (self.name, self.__age))
xiaofang = women("小芳")
# 私有屬程式設計客棧性,在外界或其子類不能夠被直接訪問
# 程式設計客棧print(xiaofang.__age)
# 私有方法,同樣不允許在外界直接訪問
# xiaofang.__secret()
# xiaofang.__age = 20 # 只是動態繫結了乙個新屬性,並不會影響私有的__age屬性。
# 可以通過 _類名__私有屬性名/方法名 的方式強行訪問私有屬性和私有方法 (不推薦)
print(xiaofang._women__age)
xiaofang._women__secret()
執行結果:
18小芳 的年齡是 18
Python 類的私有屬性和私有方法
xx 公有變數 xx 公有變數或方法,不能通過import匯入其他模組 只有模組內部使用 類物件和子類可以訪問 xx 私有變數或方法 偽私有 類外部不能直接訪問。xx 公有變數或方法,子類可以訪問。魔法方法或屬性 例如 init 不推薦這樣命名。xx 公有變數或方法。一般為了避免和python關鍵字...
python 私有屬性和視為私有屬性
python模組中的視為私有屬性 總的來說,python中有 幾種特殊的屬性 在python模組中,我們經常會見到 x 其中後面兩種 x 是習慣上的私有變數,我們不應該在外部使用它,而是應該通過呼叫內部函式來使用,但這裡是不應該而不是不能,所以要靠我們自覺遵守這個標準,另外,在自定義模組的時候,也要...
python類私有屬性
python中沒有private關鍵字,想要建立乙個類私有的變數需要通過命名規則來實現 在變數名之前加兩個下劃線 name,則在類外部就不能直接通過例項.name訪問,具體原理python編譯器將其命名修改為了 類名 name,通過其實例項.類名 name還是可以訪問 class test obje...