Python 類的私有屬性和私有方法實(shí)例分析
本文實(shí)例講述了Python 類的私有屬性和私有方法。分享給大家供大家參考,具體如下:
xx:公有變量
_xx:公有變量或方法,不能通過import導(dǎo)入其他模塊(只有模塊內(nèi)部使用)。類對(duì)象和子類可以訪問
__xx:私有變量或方法(偽私有),類外部不能直接訪問。
__xx__:公有變量或方法,子類可以訪問。魔法方法或?qū)傩?例如:__init__),不推薦這樣命名。
xx_:公有變量或方法。一般為了避免和python關(guān)鍵字沖突,不推薦這樣命名。
在 定義屬性或方法時(shí),在 屬性名或者方法名前 增加 兩個(gè)下劃線,定義的就是 私有 屬性或方法
demo.py(私有屬性,私有方法):
class Women: # 定義屬性和方法時(shí),屬性名或方法名前增加兩個(gè)下劃線__表示私有屬性或私有方法 def __init__(self, name): self.name = name # 公有屬性,外界可以直接訪問 self.__age = 18 # 私有屬性,外界及其子類不能直接訪問 # 私有方法,外界不能直接訪問 def __secret(self): # 對(duì)象內(nèi)部可以直接訪問對(duì)象的私有屬性 print("%s 的年齡是 %d" % (self.name, self.__age)) xiaofang = Women("小芳") # 私有屬性,在外界或其子類不能夠被直接訪問 # print(xiaofang.__age) # 私有方法,同樣不允許在外界直接訪問 # xiaofang.__secret() # xiaofang.__age = 20 # 只是動(dòng)態(tài)綁定了一個(gè)新屬性,并不會(huì)影響私有的__age屬性。 # 可以通過 _類名__私有屬性名/方法名 的方式強(qiáng)行訪問私有屬性和私有方法 (不推薦) print(xiaofang._Women__age) xiaofang._Women__secret()
運(yùn)行結(jié)果:
18
小芳 的年齡是 18
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
使用python將請(qǐng)求的requests headers參數(shù)格式化方法
今天小編就為大家分享一篇使用python將請(qǐng)求的requests headers參數(shù)格式化方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01Django實(shí)現(xiàn)文章詳情頁面跳轉(zhuǎn)代碼實(shí)例
這篇文章主要介紹了Django實(shí)現(xiàn)文章詳情頁面跳轉(zhuǎn)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09詳解Python中的數(shù)據(jù)清洗工具flashtext
FlashText是GitHub上的一個(gè)開源Python庫,正如之前所提到的,它在提取關(guān)鍵字和替換關(guān)鍵字任務(wù)上有著極高的性能。本文將詳解一下flashtext的使用,需要的可以參考一下2022-06-06關(guān)于Python3 lambda函數(shù)的深入淺出
今天小編就為大家分享一篇關(guān)于Python3 lambda函數(shù)的深入淺出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11Python中的with語句與上下文管理器學(xué)習(xí)總結(jié)
在Python中作為上下文管理器的對(duì)象可以使用with語句,提供上下文管理器的contextlib模塊的使用則是Python編程中的高級(jí)技巧,下面我們就來詳細(xì)整理一下Python中的with語句與上下文管理器學(xué)習(xí)總結(jié):2016-06-06Python?Pygame實(shí)戰(zhàn)之打磚塊游戲的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Python實(shí)現(xiàn)經(jīng)典的游戲—打磚塊。玩家操作一根螢?zāi)簧纤降摹鞍糇印?,讓一顆不斷彈來彈去的“球”在撞擊作為過關(guān)目標(biāo)消去的“磚塊”的途中不會(huì)落到螢?zāi)坏紫隆8信d趣的小伙伴可以了解一下2022-03-03Python Coroutine池化的實(shí)現(xiàn)詳解
在當(dāng)今計(jì)算機(jī)科學(xué)和軟件工程的領(lǐng)域中,池化技術(shù)如線程池、連接池和對(duì)象池等已經(jīng)成為優(yōu)化資源利用率和提高軟件性能的重要工具,所以下面我們就來看看Coroutine池化的具體實(shí)現(xiàn)吧2024-01-01python如何每天在指定時(shí)間段運(yùn)行程序及關(guān)閉程序
這篇文章主要介紹了python如何每天在指定時(shí)間段運(yùn)行程序及關(guān)閉程序問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2023-04-04