Python 面向?qū)ο?- 04 私有屬性和私有方法

????

一、應(yīng)用場景及定義方式

應(yīng)用場景

  • 在實際開發(fā)中,對象某些屬性或方法 可能只希望 在對象的內(nèi)部被使用,而 不希望在外部被訪問到
  • 私有屬性 就是 對象 不希望公開的 屬性
  • 私有方法 就是 對象 不希望公開的 方法

定義方式

  • 定義屬性或方法時,在 屬性名或者方法名前 增加 兩個下劃線,定義的就是 私有 屬性或方法
# 私有屬性和私有方法
class Cat:
    def __init__(self,name):
        self.name = name
        self.__age = 18
    def __eat(self):
        print("%d的%s吃撐了"%(self.__age,self.name))
cat = Cat("小花")
# 私有屬性,外部不能直接訪問
# print(cat.__age)
# 私有方法,外部不能直接調(diào)用
#AttributeError: 'Cat' object has no attribute 'eat'
# cat.__eat()

二、偽私有屬性和私有方法(科普)

提示:在日常開發(fā)中,不要使用這種方式,訪問對象的 私有屬性 或 私有方法

Python 中,并沒有 真正意義私有

  • 在給 屬性、方法 命名時,實際是對 名稱 做了一些特殊處理,使得外界無法訪問到
  • 處理方式:在 名稱 前面加上 _類名 => _類名__名稱
print(cat._Cat__age)
cat._Cat__eat()

打印結(jié)果:

18
18的小花吃撐了
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容