如何使用另一个Python返回变量

时间:2020-02-18 17:30:21

标签: python class private public

花了很多精力之后,我习惯了以下语法:

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中重现? 非常感谢

1 个答案:

答案 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开发人员知道不分配给以一两个下划线开头的变量。