2017-10-31 3 views
-1

私のコードは次のようになります。NameErrorは:グローバル名が別の.pyファイルで定義されたグローバル変数で定義されていない

config.py

global var 
var = None 

file1.py

from config import * 

def foo1(): 
    global var 
    var = <object> 

def foo2(): 
    var.doWork1() # this works 

file2.py

from config import * 

def foo3(): 
    var.doWork2() # this throws global name 'var' is not defined 

2番目のモジュールでvarにアクセスできないのはなぜですか?

+1

実際にコードをどのように実行しますか?たとえば、 'foo1'を実行する前に' foo2'を実行すると動作しません。いずれにせよ、 'config.py'の' global var'は目的を果たさない。 – chepner

+0

私は@chepnerと 'config.py'の' global var'が目的を果たしていないことに同意します。 –

+0

ところで、 'AttributeError: 'NoneType'オブジェクトには期待される属性 'doWork2''がありません。例外を除いてそのまま動作します。 –

答えて

0

解決策はグローバルではありませんでした。

代わりの

from config import * 

をやって、私は

import config 

でそれを置き換えそしてこれが働いconfig.var

経由でVARにアクセスしました。

関連する問題