Python 類的私有屬性和私有方法例項分析

2022-10-04 16:06:24 字數 978 閱讀 5860

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...