更新時(shí)間:2020-09-03 來(lái)源:黑馬程序員 瀏覽量:
Python類(lèi)的屬性一般分為私有屬性和公有屬性,如C++、C#、Java等面向?qū)ο蟮恼Z(yǔ)言都有定義私有屬性的關(guān)鍵字。而Python中沒(méi)有這類(lèi)關(guān)鍵字,默認(rèn)情況下所有的屬性都是“公有的”,這樣對(duì)類(lèi)中屬性的訪問(wèn)將沒(méi)有任何限制,并且都會(huì)被子類(lèi)繼承,也能從子類(lèi)中進(jìn)行訪問(wèn)。這肯定不是我們想要的。Python使用約定屬性名稱來(lái)達(dá)到這樣數(shù)據(jù)封裝的目的。如果屬性的名字以兩個(gè)下劃線開(kāi)始,就表示為私有屬性;反之,沒(méi)有使用雙下劃線開(kāi)始的表示公有屬性。類(lèi)的方法也同樣使用這樣的約定。
在實(shí)際開(kāi)發(fā)中,對(duì)象的某些屬性或方法可能只希望在對(duì)象的內(nèi)部被使用,而不希望在外部被訪問(wèn)到。
私有屬性就是對(duì)象不希望公開(kāi)的屬性;
私有方法就是對(duì)象不希望公開(kāi)的方法。
class Women: def __init__(self, name): self.name = name # 不要問(wèn)女生的年齡 self.__age = 18 def __secret(self): print("我的年齡是 %d" % self.__age) xiaofang = Women("小芳") # 私有屬性,外部不能直接訪問(wèn) # print(xiaofang.__age) # 私有方法,外部不能直接調(diào)用 # xiaofang.__secret()
在定義屬性或方法時(shí),在屬性名或者方法名前增加兩個(gè)下劃線,定義的就是私有屬性或方法。
提示:在日常開(kāi)發(fā)中,不要使用這種方式,訪問(wèn)對(duì)象的私有屬性或私有方法。
Python中并沒(méi)有真正意義的私有
·在給屬性、方法命名時(shí),實(shí)際是對(duì)名稱做了一些特殊處理,使得外界無(wú)法訪問(wèn)到
·處理方式:在名稱前面加上 _類(lèi)名 => _類(lèi)名__名稱
# 私有屬性,外部不能直接訪問(wèn)到 print(xiaofang._Women__age) # 私有方法,外部不能直接調(diào)用 xiaofang._Women__secret()
Python模塊的分類(lèi)和模塊導(dǎo)入方式
Python視頻:Django入門(mén)視頻
python中的for循環(huán)詳細(xì)介紹
python while循環(huán)語(yǔ)句的用法
以下是黑馬程序員近期推出的Python興趣課程,3天入門(mén)Python,體驗(yàn)Python的魅力!
0基礎(chǔ)Python3天入門(mén)課程
·了解Python主流就業(yè)方向,把握最新熱點(diǎn)技術(shù)
·掌握Python的基礎(chǔ)語(yǔ)法及API調(diào)用
·能夠使用Python對(duì)數(shù)據(jù)獲取、使用和展示
·打造自己的數(shù)據(jù)分析項(xiàng)目并自動(dòng)生成工作報(bào)告