花了很多精力之后,我习惯了以下语法:
private var __privateVar = 100 // Not accessible from outside the Class
public var public_var: Int = {
return __privateVar // Returns __privateVar, and is get-only variable
}
有没有一种方法可以在python 3中重现? 非常感谢
答案 0 :(得分:1)
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
值得注意的是,您可以通过在变量前加上双下划线(例如__var
)来在某种程度上模拟私有变量的行为(如果在{类范围。但是,这并不是万无一失的,如果您确实愿意,可以随时解决。但是,一般而言,Python开发人员知道不分配给以一两个下划线开头的变量。