如何使用另一个Python返回变量
在与swift进行了大量工作后,我习惯了以下语法:如何使用另一个Python返回变量,python,class,private,public,Python,Class,Private,Public,在与swift进行了大量工作后,我习惯了以下语法: private var __privateVar = 100 // Not accessible from outside the Class public var public_var: Int = { return __privateVar // Returns __privateVar, and is get-only variable } 有没有办法在Python3中重现这一点? 非常感谢Python甚至没有访问修饰符的概念—
private var __privateVar = 100 // Not accessible from outside the Class
public var public_var: Int = {
return __privateVar // Returns __privateVar, and is get-only variable
}
有没有办法在Python3中重现这一点?
非常感谢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
值得注意的是,您可以在某种程度上模拟私有变量的行为,方法是在变量前面加上双下划线(例如在
\uu var
中),如果在类范围中使用,则会导致名称混乱。不过,这并不是万无一失的,如果你真的想避开它,你随时都可以。但是,一般来说,Python开发人员都知道不要给以一两个下划线开头的变量赋值。不过,有没有办法通过从另一个下划线返回来访问这些变量?@Carcigenicate对于属性来说,这并不完全正确。Python类中是否有“私有”变量?为了清楚起见,\u var
不是只读的,用户仍然可以查看或修改它。@Alexander从答案的第一句话就应该足够清楚了。