在Python3中,给类变量加前缀会使它私有化,因为我在类中弄乱了名称。如何访问类中的模块变量?在
例如,以下两种方法不起作用:__a = 3
class B:
def __init__(self):
self.a = __a
b = B()
结果:
^{pr2}$
使用global也没有帮助:__a = 3
class B:
def __init__(self):
global __a
self.a = __a
b = B()
结果:Traceback (most recent call last):
File "", line 1, in
File "", line 4, in __init__
NameError: name '_B__a' is not defined
运行locals()表明变量__a是无序存在的:>>> locals()
{'__package__': None, '__name__': '__main__',
'__loader__': ,
'__doc__': None, '__a': 3, 'B': ,
'__builtins__': , '__spec__': None}
[添加新行以确保易读性]
在模块中运行相同的代码(与解释器相反)会导致完全相同的行为。使用水蟒的Python 3.5.1 :: Continuum Analytics, Inc.。在