python類成員的訪問限制
python類成員的訪問限制
1、說明
(1)默認情況下,Python中的類成員都是公開的,在Python中沒有像public,private這樣的關鍵字來修飾類成員。定義Python中的私有成員只需在變量名或函數名之前加上兩條下劃線,這個函數或變量就會變成私有的。當原私有成員的名字被外部使用時,會提示找不到。但是這只是一個約定的方法,如果想在外部調用,仍然可以調用。
(2)Python的私有成員并不是真正意義上的私有,在類外部也可以調用。
2、實例
#!/usr/bin/envpython
#-*-coding:utf-8-*-
classDemo(object):
"""docstringforDemo"""
def__init__(self):
super(Demo,self).__init__()
self.__message='HelloWorld'
def__getMessage(self):
returnself.__message
if__name__=='__main__':
demo=Demo()
#直接調用會報錯:AttributeError:'Demo'objecthasnoattribute'__getMessage'
#print(demo.__getMessage())
#我們來看一下demo模塊都有哪些成員
print(dir(demo))
"""
可以看到原來Python使用一種namemangling(名稱修飾)技術,將__membername替換成_classname__membername,
['_Demo__getMessage','_Demo__message',...]
"""
#我們使用修飾后的名字就可以成功調用
print(demo._Demo__message)
print(demo._Demo__getMessage())
以上就是Python類成員的訪問限制,希望對大家有所幫助。更多Python學習推薦:請關注IT培訓機構:千鋒教育。

猜你喜歡LIKE
相關推薦HOT
更多>>
python中的filter函數功能是什么?
python中的filter函數功能是什么?在python中,面對眾多的數據,我們要過濾篩選出我們需要的數據。python中的filter函數就是起到了過濾篩選的作...詳情>>
2023-11-10 20:37:27
pythontime模塊是什么
pythontime模塊是什么在python中使用時間,就免不了和time模塊打交道,另外兩個模塊這個暫時先不做介紹。做time模塊的使用上,我們可以用它來對...詳情>>
2023-11-10 15:53:16
python是什么編程語言
python是什么編程語言1、說明是一種面向對象、解釋型計算機程序設計語言,由GuidovanRossum于1989年底發明,第一個公開發行版發行于1991年。Pyt...詳情>>
2023-11-10 15:21:05
python異常處理的兩種技巧
python異常處理的兩種技巧1、傳遞異常有時我們會在捕捉到一個異常后重新引發它(傳遞異常),實現起來很簡單,使用不帶參數的raise語句即可。deff...詳情>>
2023-11-10 14:49:39熱門推薦
python中的filter函數功能是什么?
沸python delattr函數如何使用?
熱python中pdb模塊怎么用?
熱Python如何截圖保存?
新python?中缺少module怎么辦?
python strftime和strptime的不同分析
python time.strptime的格式化
python中@contextmanager是什么?
python對象的三要素是什么
pythonGIL在Python多線程的應用
python如何對多個CSV文件進行讀取
pythonif嵌套命令如何理解?
python對列表進行永久性或臨時排序的方法
python生成器調用方法引發異常
技術干貨






