Python 面向對象 --- 私有屬性和私有方法
阿新 • • 發佈:2018-08-22
處理 %d com 私有 訪問 class 無法 self. inf
01,應用場景及定義方式
應用場景
- 在實際開發中,對象 的 某些屬性或方法 可能只希望 在對象的內部被使用,而 不希望被外部訪問到
- 私有屬性 就是 對象 不希望公開的 屬性
- 私有方法 就是 對象 不希望公開的 方法
定義方式
- 在 定義屬性或方法時,在 屬性名或者方法名前 增加連個下劃線,定義的就是 私有 屬性或方法
class Women: def __init__(self, name): self.name = name self.__age = 18 # def __secret(self): def secret(self): # 在對象的方法內部,是可以訪問對象的私有屬性的 print("%s 的年齡是 %d" % (self.name, self.__age)) namei = Women("娜美") # 私有屬性和私有方法,在外界不能直接別訪問 # namei.__age() # namei.__secret() namei.secret() # 結果呈現 娜美 的年齡是 18
02,偽私有屬性和私有方法
提示:在日常開發中,不要使用這種方法,訪問對象的 私有屬性 或 私有方法
python
中,並沒有 真正意義 的 私有
- 在給 屬性、方法 命名時,實際是對 名稱 做了一些特殊處理,使得外界無法訪問到
- 處理方式: 在 名稱 面前加上
__類名
=>__類名__名稱
class Women(): def __init__(self, name): self.name = name self.__age = 18 def __secret(self): # def secret(self): # 在對象的方法內部,是可以訪問對象的私有屬性的 print("%s 的年齡是 %d" % (self.name, self.__age)) namei = Women("娜美") # 私有屬性和私有方法,在外界不能直接別訪問 # namei.__age() namei._Women__secret() # namei.secret() # 結果呈現 娜美 的年齡是 18
Python 面向對象 --- 私有屬性和私有方法