python類成員的訪問限制
1、說明
(1)默認情況下,Python中的類成員都是公開的,在Python中沒有像public,private這樣的關(guān)鍵字來修飾類成員。定義Python中的私有成員只需在變量名或函數(shù)名之前加上兩條下劃線,這個函數(shù)或變量就會變成私有的。當原私有成員的名字被外部使用時,會提示找不到。但是這只是一個約定的方法,如果想在外部調(diào)用,仍然可以調(diào)用。
(2)Python的私有成員并不是真正意義上的私有,在類外部也可以調(diào)用。
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()
#直接調(diào)用會報錯:AttributeError:'Demo'objecthasnoattribute'__getMessage'
#print(demo.__getMessage())
#我們來看一下demo模塊都有哪些成員
print(dir(demo))
"""
可以看到原來Python使用一種namemangling(名稱修飾)技術(shù),將__membername替換成_classname__membername,
['_Demo__getMessage','_Demo__message',...]
"""
#我們使用修飾后的名字就可以成功調(diào)用
print(demo._Demo__message)
print(demo._Demo__getMessage())
以上就是Python類成員的訪問限制,希望對大家有所幫助。更多Python學習推薦:請關(guān)注IT培訓機構(gòu):千鋒教育。