【问题标题】:How to return a variable using another one Python如何使用另一个 Python 返回一个变量
【发布时间】:2020-06-02 19:14:02
【问题描述】:

在使用了很多 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 private public


【解决方案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 开发人员都知道不要给以一两个下划线开头的变量赋值。

【讨论】:

  • 需要明确的是,_var不是只读的,用户仍然可以查看或修改。
  • @Alexanderthat 应该从答案的第一句话就足够清楚了。
猜你喜欢
  • 1970-01-01
  • 2020-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-16
  • 2017-06-30
  • 1970-01-01
相关资源
最近更新 更多