NameError:name 'self'が定義されていません。

2016-10-06 5 views
1

以下のコードは、 "NameError:name 'self'が定義されていません"を返します。NameError:name 'self'が定義されていません。

。確認するために$パイソン-ttを使用してあなたのコードスニペットは、Fiを提供して動作します。あなたは、スペースやタブを混ぜた場合、これが発生する可能性があります -
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 

おかげ

+3

質問に完全なエラートレースバックを追加してください! –

+1

脇に:forループをインデント解除することができます –

+0

この質問のコードは正しいですか、if文がdefの中にないとPythonが考えるように、インデントの問題があるかもしれません。 – RemcoGerlich

答えて

2

あなたのインデントを確認してください。私のためにね。

+0

config.jsonファイルがパースにありますか? – feroz

+0

はい、シンプルな設定ファイルでチェックしましたが、それがないと例外は発生しませんでした。 – MateuszL

関連する問題