Python 2.7 @属性 用法导致错误"global name '_c__pro' is not defined"

Python 2.7 @property usage results in error "global name '_c__pro' is not defined"

我在 Python2.7 中写了一个简单的 class,它应该使用 @property 功能。

class c():
    def __init__(self):
        __pro = 1

    @property
    def pro(self):
        return __pro *10

    def setpro(self, x):
        __pro = x

现在,当我从这个 class 创建对象并尝试访问 pro 属性 时,我收到以下错误:

>>> x = c()
>>> x.pro
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 7, in pro
NameError: global name '_c__pro' is not defined

请注意,整个内容都是在同一个 python 命令行会话中编写的,因此它应该与缺少导入或导入命名空间错误无关。

我在这里做错了什么?我必须如何重写它才能访问 属性 pro?

访问成员变量时需要使用self.:

def __init__(self):
    self.__pro = 1

@property
def pro(self):
    return self.__pro *10