Python_從零開始學習_(38) 私有屬性和私有方法
阿新 • • 發佈:2018-11-02
1. 應用場景及定義方式
應用場景
- 在實際開發中, 物件 的 某些屬性或方法 可能只希望 在物件的內部被使用, 而 不希望在外部被訪問到
- 私有屬性 就是 物件 不希望公開的 屬性
- 私有方法 就是 物件 不希望公開的 方法
定義方式
- 在 定義屬性或方法時, 在 屬性名或者方法名前 增加 兩個下劃線, 定義的就是 私有 屬性或方法
Women |
---|
name __age |
__init__(self, name): __secret(self): |
class Women: def __init__(self, name): self.name = name self.__age = 18 def __secret(self): # 在物件的方法內部, 是可以訪問物件的私有屬性的 print("%s 的年齡是 %d" % (self.name, self.__age)) def tell(self): # 在物件的方法內部, 是可以訪問物件的方法 self.__secret() xiaofang = Women("小芳") # 私有屬性, 在外界不能夠直接訪問 # print(xiaofang.age) # 私有方法, 同樣不允許在外界直接訪問 # print(xiaofang.__secret()) xiaofang.tell()
2. 偽私有屬性和私有方法(科普不推薦使用)
提示 : 在日常開發中, 不要使用這種方法, 訪問物件的 私有屬性 或 私有方法
Python 中, 並沒有 真正意義 的 私有
- 再給 屬性, 方法 命名時, 實際是對 名稱 做了一些特殊處理, 使得外界無法訪問到
- 處理方式: 在 名稱 前面加上 _類名 => _類名__名稱
# 私有屬性 這樣訪問 print(xiaofang._Women__age) # 私有屬性 這樣訪問 print(xiaofang._Women__secret())