在使用 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开发人员知道不要分配给以一个或两个下划线开头的变量。__var
添加回答
举报
0/150
提交
取消