python中沒有private關鍵字,想要建立乙個類私有的變數需要通過命名規則來實現
在變數名之前加兩個下劃線__name,則在類外部就不能直接通過例項.__name
訪問,具體原理python編譯器將其命名修改為了_類名__name
,通過其實例項._類名__name
還是可以訪問
class test(object):
def __init__(self, var1, var2):
# 私有例項變數
self.__private_var = var1
self.var = var2
def get_private_var(self):
print self.__private_var
def set_private_var(self, var):
self.__private_var = var
instance = test('private var', 'public var')
print instance.var
#通過 例項._類名__name 強制訪問
print instance._test__private_var
instance.get_private_var()
instance.set_private_var('var')
print instance.__private_var
輸出
public var
private var
private var
traceback (most recent call last):
file "d:\code\hellopython\class_test.py", line 24, in print instance.__private_var
attributeerror: 'test' object has no attribute '__private_var'
Python 定義類的私有屬性
私有屬性變數不能從物件外部訪問,而只能通過訪問器方法 class secretive def inaccessible self print bet you can t see me def accessible self print the secret message is self.inacc...
python類的共有屬性 私有屬性 例項屬性
類的共有屬性 私有屬性 例項屬性 class parent i 1 j 2 class child parent m 3 n 4 def init self,age,name self.age age self.name name def des self print self.name,self....
Python 類的私有屬性和私有方法
xx 公有變數 xx 公有變數或方法,不能通過import匯入其他模組 只有模組內部使用 類物件和子類可以訪問 xx 私有變數或方法 偽私有 類外部不能直接訪問。xx 公有變數或方法,子類可以訪問。魔法方法或屬性 例如 init 不推薦這樣命名。xx 公有變數或方法。一般為了避免和python關鍵字...