python私有變數

2021-08-31 07:29:31 字數 1253 閱讀 6153

只有在函式裡(不一定是建構函式),以__開頭的變數才是私有變數,看**:

class a:

definit(self):

self.data1=1

self.data2=2

self.__data3=3

self.__data4=44

def fun1(self):

print(self.__data4)

self.data5=5

object_a=a()

object_a.__data4=4

print(object_a.__data4)

object_a.fun1()

print(dir(object_a))

輸出:4

44[』_a__data3』, 『_a__data4』, 『class』, 『__data4』, 『delattr』, 『dict』, 『dir』, 『doc』, 『eq』, 『format』, 『ge』, 『getattribute』, 『gt』, 『hash』, 『init』, 『init_subclass』, 『le』, 『lt』, 『module』, 『ne』, 『new』, 『reduce』, 『reduce_ex』, 『repr』, 『setattr』, 『sizeof』, 『str』, 『subclasshook』, 『weakref』, 『data1』, 『data2』, 『data5』, 『fun1』]

我用例項object_a也定義了乙個__data4變數,但是__data4和類裡面的__data4並不是同乙個變數,呼叫dir()函式可知,形如_a__data4的才是私有變數

python私有變數

在python中定義私有變數只需要在變數名或函式名前加上 兩個下劃線,那麼這個函式或變數就是私有的了。在內部,python使用一種 name mangling 技術,將 membername替換成 classname membername,也就是說,類的內部定義中,所有以雙下劃線開始的名字都被 翻譯...

python私有變數公開變數說明

先上 class people name l 女 def init self,age self.age age def str self return 姓名 self.name 年齡 str self.age 性別 self.先說公開變數,name和age都是公開變數,外部都可以通過 例項物件.na...

python類的私有變數和私有方法

usr bin env python coding utf 8 time 2017 11 08 8 46 author lijunjiang file class3.py 類的私有變數和私有方法 在python中可以通過在屬性變數名前加上雙下劃線定義屬性為私有屬性 特殊變數命名 1 xx 以單下劃線...