私はPythonモジュールを書いており、モジュール内に新しい変数を定義する関数があります。私はファイルをインポートしているファイルでアクセスできる変数を設定したい。それが混乱している場合は、ここに私のコードは次のとおりです。モジュール内のグローバル変数を編集するには?
# main.py
import other_module
other_module.set_variable("var1")
print(other_module.var1) # This is not a NameError
print(var1) # NameError
私は少し別の何か行う場合は、:
# main.py
from other_module import *
set_variable("var1")
print(var1) # NameError
print(other_module.var1) # NameError
そしてother_module.py
:
# other_module.py
def set_variable(name):
exec("""
global %s
%s = 5
""" % (name, name))
を私はを制御することはできませんmain.py
。それが消費者のコードです。 main.py
のグローバルにアクセスして変更できるようにしたい。私はこれがうまくいきます:
# main.py
from other_module import *
set_variable("var")
print(var) # This should print 5
この質問はhttp://stackoverflow.com/questions/37534046 –
なぜあなたは幹部を使用しているだけではなく、 'グローバル()'と非常によく似ているのですか? – BrenBarn
@BrenBarnどのように 'globals()'を使うのですか? 'globals()。append'? – NoOneIsHere