您好,登錄后才能下訂單哦!
小編給大家分享一下在python中私有變量域指的是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!
默認(rèn)情況下,Python中的成員函數(shù)和成員變量都是公開的(public),在python中沒有類似public,private等關(guān)鍵詞來修飾成員函數(shù)和成員變量。
在python中定義私有變量只需要在變量名或函數(shù)名前加上 ”__“兩個下劃線,那么這個函數(shù)或變量就是私有的了。
作用域(scope),程序設(shè)計概念,通常來說,一段程序代碼中所用到的名字并不總是有效/可用的,而限定這個名字的可用性的代碼范圍就是這個名字的作用域。
作用域的使用提高了程序邏輯的局部性,增強(qiáng)程序的可靠性,減少名字沖突。
私有變量域就是私有變量的可用范圍。
在內(nèi)部,python使用一種 name mangling 技術(shù),將 __membername替換成 _classname__membername,也就是說,類的內(nèi)部定義中,所有以雙下劃線開始的名字都被"翻譯"成前面加上單下劃線和類名的形式。
例如:為了保證不能在class之外訪問私有變量,Python會在類的內(nèi)部自動的把我們定義的__spam私有變量的名字替換成為
_classname__spam(注意,classname前面是一個下劃線,spam前是兩個下劃線),因此,用戶在外部訪問__spam的時候就會
提示找不到相應(yīng)的變量。
python中的私有變量和私有方法仍然是可以訪問的;訪問方法如下:
私有變量:實例._類名__變量名
私有方法:實例._類名__方法名()
其實,Python并沒有真正的私有化支持,但可用下劃線得到偽私有。 盡量避免定義以下劃線開頭的變量!
(1)_xxx "單下劃線 " 開始的成員變量叫做保護(hù)變量,意思是只有類實例和子類實例能訪問到這些變量,需通過類提供的接口進(jìn)行訪問;不能用'from module import *'導(dǎo)入。
(2)__xxx 類中的私有變量/方法名 (Python的函數(shù)也是對象,所以成員方法稱為成員變量也行得通。)," 雙下劃線 " 開始的是私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數(shù)據(jù)。
(3)__xxx__ 系統(tǒng)定義名字,前后均有一個“雙下劃線” 代表python里特殊方法專用的標(biāo)識,如 __init__()代表類的構(gòu)造函數(shù)。
看完了這篇文章,相信你對在python中私有變量域指的是什么有了一定的了解,想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。