python之類私有成員

2022-09-17 11:57:12 字數 707 閱讀 2392

python類的成員前加雙下劃線"__", 則被看作"私有"成員. 例項不能簡單地通過.來訪問. 但python的"私有"成員也不是不可訪問的, 只是python玩了個"名稱變化術":

"儘管雙下劃線有些奇怪,但是看起來像是其他語言中的標準的私有方法. 真正發生的事情才是不標準的. 類的內部定義中, 所有以雙下劃線開始的名字都被"翻譯"成前面加上單下劃線和類名的形式.

>>>secrite._secretive__inaccessible

在了解了這些幕後的事情後, 實際上還是能在類外訪問這些私有方法, 儘管不應該這麼做:

>>>s._secritive__inaccessible()

bet you can't see me...

簡而言之, 確保其他人不會訪問物件的方法和特性是不可能的, 但是這類"名稱變化術"就是他們不應該訪問這些函式或者特性的強有力訊號.

如果不需要使用這種方法但是又想被其他物件不要訪問內部資料,那麼可以使用單下劃線. 這不過是個習慣, 但的確有實際效果. 例如, 前面有下劃線的名字都不會被帶星號的imports語句(from module import *)匯入."

題後話:

以前老是聽聞python是j**a的下乙個替代語言. 我不知道寫這些資料的中國人是腦子進水, 還是徹底業外人士,說話如此不積陰德.

學了幾天python, 發覺j**a的就是一種思想, 不是python可以簡單地模仿的, 更別說代替了....

C 之類私有成員的安全訪問

當類內宣告了private 成員的時候,外面對這個是禁止訪問的,之前學的c 是通過新增訪問函式和更改函式來對其進行更改和訪問,現在c 的set 和get 方法乙個道理 set 方法裡面有個value,就是對應的字段的值,比如說private string age 對應的set 函式是 set str...

python 類私有成員

在python中定義私有變數只需要在變數名或函式名前加上 兩個下劃線,那麼這個函式或變數就會為私有的了。created on 2012 7 24 author administrator class test def test 1 self print test 1 is ok.def test 2...

python私有成員與公有成員 和

python並沒有對私有成員提供嚴格的訪問保護機制。1 classa 2 def init self,value1 0,value2 0 3 self.value1 value1 4 self.value2 value2 5def setvalue self,value1,value2 6 self...