在使用 swift 進行大量工作之后,我習慣了以下語法:private var __privateVar = 100 // Not accessible from outside the Classpublic var public_var: Int = { return __privateVar // Returns __privateVar, and is get-only variable}有沒有辦法在python 3中重現這一點?多謝
1 回答

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
Python甚至沒有訪問修飾符的概念 - 所以如果你的意思是你想要一個私有變量,那不是你可以做的事情。但是,您可以使用只讀屬性:
class Test:
def __init__(self):
self._var = 'some string'
@property
def var(self):
return self._var
然后,按如下方式使用它:
obj = Test()
obj.var # works
obj.var = 'whatever' # raises AttributeError
obj._var = 'whatever' # still works
值得注意的是,您可以通過在變量前面加上雙下劃線(如 in )來模擬私有變量的行為,如果在類作用域中使用,則會引入名稱重整。但是,這并不是萬無一失的,如果您真的想,您可以隨時繞過它。但是,通常,Python開發(fā)人員知道不要分配給以一個或兩個下劃線開頭的變量。__var
添加回答
舉報
0/150
提交
取消