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