NameError:当使用inside with语句时,未定义名称'self'

时间:2016-10-06 08:20:07

标签: python class nameerror contextmanager

有人可以帮助我在'with'里面使用'self'。 下面的代码抛出“NameError:name'self'未定义”。

class Versions:

    def __init__(self):
        self.module_a = '1.0.0'
        self.module_b = '1.0.0'

        if os.path.exists('config.json'):
            with open('config.json') as f:
                configs = json.load(f)
                for config in configs:
                    setattr(self, config, configs[config])

回溯

NameError                                 Traceback (most recent call last)
<ipython-input-5-ed6a4ca551d4> in <module>()
      3                 configs = json.load(f)
      4                 for config in configs:
----> 5                         setattr(self, config, configs[config])
      6

NameError: name 'self' is not defined

感谢。

1 个答案:

答案 0 :(得分:2)

请检查你的缩进 - 如果你混合空格和标签,这可能会发生;使用$ python -tt来验证。您的代码段对我来说很好。