私は3つのファイルを持っています。 1つは変数を定義するためのもので、他の2つは必要なモジュールを含みます。インポートされたファイルのPython抽出変数
variable.py
my_var = ""
test.py
import variable
def trial():
variable.my_var = "Hello"
main.py(動作しない)
from variable import *
from test import trial
if __name__ == "__main__":
trial()
print my_var
そして、私は0を実行します、何も分かりません。しかし、私はこのようなmain.py
を変更した場合、
main.py(作業)
import variable
from test import trial
if __name__ == "__main__":
trial()
print variable.my_var
そして、それは私に期待される出力すなわちHello
を与えます。
私のケースでは、より多くの変数が含まれており、アクセスする際にvariable.<variable name>
を使用したくありません。それらを変更している間は、ユーザの入力に応じて一度だけ変更して、複数のファイルにまたがって複数回アクセスするので、variable.<variable name>
を使用しても問題はありません。
main.py
の変数をtest.py
で修正して、接頭辞なしで使用すると、すべての変数を抽出する方法がありますか?variable.
?
'from variable import * 'を実行すると、' variable'モジュールからの名前をローカルに追加することになりますしたがって、インポートが発生したときに変数の値を参照します。元のモジュールを変更した場合、その変更はインポートされたシンボルに反映されません。 – dhke
@dhkeええ、私はこれら二つの変種の作業から理解しました。しかし、私の質問はやや異なっています。 – RatDon
[関連する質問](http://stackoverflow.com/questions/4758562/modifying-a-variable-in-a-module-imported-using-from-import) [良い答え](http://stackoverflow.com/a/4764225/6525140)。 – mhoff