python 权限修饰符
阿里云大學(xué)人工智能學(xué)前小測(cè)驗(yàn)-Python測(cè)試
10.Python權(quán)限修飾正確的是
A. 標(biāo)識(shí)符開(kāi)頭無(wú)下劃線,該變量或方法為公有權(quán)限
B. 標(biāo)識(shí)符開(kāi)頭雙下劃線,該變量或方法為私有權(quán)限
C. 標(biāo)識(shí)符開(kāi)頭單下劃線,該變量或方法為保護(hù)權(quán)限
D. 以上都正確
參考博文:https://www.cnblogs.com/yanyichao/p/4319348.html,感謝博主
關(guān)于python中訪問(wèn)權(quán)限建議看一下這篇博文http://www.liujiangblog.com/course/python/45,畢竟以雙下劃線開(kāi)頭的數(shù)據(jù)成員是不是一定就無(wú)法從外部訪問(wèn)呢?其實(shí)也不是!本質(zhì)上,從內(nèi)部機(jī)制原理講,外部不能直接訪問(wèn)__age是因?yàn)镻ython解釋器對(duì)外把__age變量改成了_People__age,也就是_類名__age(類名前是一個(gè)下劃線)。因此,投機(jī)取巧的話,你可以通過(guò)_ People__age在類的外部訪問(wèn)__age變量。即Python的私有成員和訪問(wèn)限制機(jī)制是“假”的,沒(méi)有從語(yǔ)法層面徹底限制對(duì)私有成員的訪問(wèn)。
1 訪問(wèn)權(quán)限
Python中變量(函數(shù))的訪問(wèn)權(quán)限與變量(函數(shù))的名字有關(guān)
public object
protected _object import *?不會(huì)導(dǎo)入
private __object
system_use __object__
其中,單下劃線開(kāi)頭,則不能通過(guò)import * 導(dǎo)入;雙下劃線開(kāi)頭(且少于兩個(gè)下劃線結(jié)尾),則無(wú)法直接訪問(wèn),但是可以通過(guò)_classname__object訪問(wèn)。
class A:
__age = 18
print(dir(A()))
print(A()._A__age)
2 名字修飾
名字修飾是現(xiàn)代計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的編譯器用于解決由于程序?qū)嶓w的名字必須唯一而導(dǎo)致的問(wèn)題的一種技術(shù)。?
Python語(yǔ)言的名字修飾用于類的“私有”(private)成員。這種類成員的名字由前導(dǎo)雙下劃線開(kāi)頭,并且后綴下劃線不能多于一個(gè)。例如__thing將被名字修飾,___thing和__thing_同樣也會(huì)被名字修飾,但是__thing__和__thing___就不會(huì)被名字修飾。Python運(yùn)行時(shí)庫(kù)不限制訪問(wèn)這些成員,名字修飾只是用來(lái)避免擁有同名成員的派生類發(fā)生名字沖突。
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的python 权限修饰符的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python 查看当前系统Python版
- 下一篇: python 魔法参数*argv 和 *