私有屬性和私有方法
01. 應用場景及定義方式
應用場景
- 在實際開發中,對象 的 某些屬性或方法 可能只希望 在對象的內部被使用,而 不希望在外部被訪問到
- 私有屬性 就是 對象 不希望公開的 屬性
- 私有方法 就是 對象 不希望公開的 方法
定義方式
- 在 定義屬性或方法時,在 屬性名或者方法名前 增加 兩個下划線,定義的就是 私有 屬性或方法
class Women: def __init__(self, name): self.name = name # 不要問女生的年齡 self.__age = 18 def __secret(self): print("我的年齡是 %d" % self.__age) def get(self): self.__secret() xiaofang = Women("小芳") # 私有屬性,外部不能直接訪問 #print(xiaofang.__age) # 私有方法,外部不能直接調用 #xiaofang.__secret() xiaofang.get() # 我的年齡是 18
02. 偽私有屬性和私有方法(科普)
提示:在日常開發中,不要使用這種方式,訪問對象的 私有屬性 或 私有方法
Python
中,並沒有 真正意義 的 私有
- 在給 屬性、方法 命名時,實際是對 名稱 做了一些特殊處理,使得外界無法訪問到
- 處理方式:在 名稱 前面加上
_類名
=>_類名__名稱
# 私有屬性,外部不能直接訪問到 print(xiaofang._Women__age) # 私有方法,外部不能直接調用 xiaofang._Women__secret()