如何 return 一个变量使用另一个变量 Python
How to return a variable using another one Python
在使用 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
}
有没有办法在 python 3 中重现这个?
非常感谢
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
)在某种程度上模拟私有变量的行为,这引入了名称如果在 class 范围内使用,则进行重整。不过,这并非万无一失,如果你真的想的话,你总是可以绕过它。但是,一般来说,Python 开发人员知道不要给以一两个下划线开头的变量赋值。
在使用 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
}
有没有办法在 python 3 中重现这个? 非常感谢
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
)在某种程度上模拟私有变量的行为,这引入了名称如果在 class 范围内使用,则进行重整。不过,这并非万无一失,如果你真的想的话,你总是可以绕过它。但是,一般来说,Python 开发人员知道不要给以一两个下划线开头的变量赋值。