當前位置:編程學習大全網 - 編程語言 - 在python中什麽是私有變量域

在python中什麽是私有變量域

默認情況下,Python中的成員函數和成員變量都是公開的(public),在python中沒有類似public,private等關鍵詞來修飾成員函數和成員變量。

在python中定義私有變量只需要在變量名或函數名前加上 ”__“兩個下劃線,那麽這個函數或變量就是私有的了。

作用域(scope),程序設計概念,通常來說,壹段程序代碼中所用到的名字並不總是有效/可用的,而限定這個名字的可用性的代碼範圍就是這個名字的作用域。

作用域的使用提高了程序邏輯的局部性,增強程序的可靠性,減少名字沖突。

私有變量域就是私有變量的可用範圍。

在內部,python使用壹種 name mangling 技術,將 __membername替換成 _classname__membername,也就是說,類的內部定義中,所有以雙下劃線開始的名字都被"翻譯"成前面加上單下劃線和類名的形式。

例如:為了保證不能在class之外訪問私有變量,Python會在類的內部自動的把我們定義的__spam私有變量的名字替換成為

_classname__spam(註意,classname前面是壹個下劃線,spam前是兩個下劃線),因此,用戶在外部訪問__spam的時候就會

提示找不到相應的變量。 ?

python中的私有變量和私有方法仍然是可以訪問的;訪問方法如下:

私有變量:實例._類名__變量名

私有方法:實例._類名__方法名()

其實,Python並沒有真正的私有化支持,但可用下劃線得到偽私有。 ?盡量避免定義以下劃線開頭的變量!

(1)_xxx ?"單下劃線 " 開始的成員變量叫做保護變量,意思是只有類實例和子類實例能訪問到這些變量,需通過類提供的接口進行訪問;不能用'from module import *'導入。

(2)__xxx 類中的私有變量/方法名 (Python的函數也是對象,所以成員方法稱為成員變量也行得通。)," 雙下劃線 " 開始的是私有成員,意思是只有類對象自己能訪問,連子類對象也不能訪問到這個數據。

(3)__xxx__ 系統定義名字,前後均有壹個“雙下劃線” 代表python裏特殊方法專用的標識,如 __init__()代表類的構造函數。

更多Python知識請關註Python視頻教程欄目。

  • 上一篇:C語言編程。用數組存儲5個學生的某門課的成績和該門課的平均成績,求出該門課的平均成績。
  • 下一篇:辦壹個教育培訓機構需要什麽條件?
  • copyright 2024編程學習大全網