class a(object):
def __init__(self):
self.__a = 1
def get_a(self):
return self.__a
def set_a(self, num):
self.__a = num
class a(a):
def __init__(self):
super(a, self).__init__() #init self.__a in a
print self.get_a()
self.set_a(4)
z = a()
za = z.get_a()
print za # output 1
z.set_a(2)
za = z.get_a()
print za # output 2
y = a() # output 1
ya = y.get_a()
print ya # output 4
print z.get_a() # output 2
輸出:1
通過例子可以知道,私有變數不能在類外被直接訪問到,比如 z.__a的形式是錯誤的,需要通過固定函式介面訪問(def get_a():)。
這個函式介面可以被子類繼承,繼承之後,變數的記憶體空間是分離的。
私有變數需要加self使之變成類變數。
python私有變數
只有在函式裡 不一定是建構函式 以 開頭的變數才是私有變數,看 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 ...
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...