python類私有屬性

2021-07-17 04:50:33 字數 1033 閱讀 4723

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關鍵字...