問題のビット背景。 Python2.7でコードを書いていますが、うまくいきます。しかし私は使いやすさとメンテナンスの目的でこれをモジュールに分解することにしました。私はヒットとトライアルの方法で動作させることはできましたが、正しいアプローチかどうかは分かりませんが、ここで共有しています。ここで共有されるコードは、同じロジック、順序、およびアプローチを推進する実際のコードの単純化された複製です。Python2.7でメインスクリプトや他のユーザ定義関数から変数を使用する方法
MainEx.pyも内部
from LogIn_1 import LogIn
global NumTry
NumTry = 2
LogIn()
# xx is here just to show NumTry variable is further used in MainEx script
xx = NumTry*3
基本的に私はここで通信しようとNumTry変数がMainEx.py(最高レベルのスクリプト)で使用されているもの、最も高いレベルで実行中のスクリプトとありますLogIn()関数。また、私が作成している他の関数でも使用されます。
LogIn_1.pyは、ユーザー定義関数
MainEx.pyを実行def LogIn():
from MainEx import NumTry
# following are some computations involving NumTry
print NumTry
は結果を与えている:
2
2
質問:なぜそれが二回 2.結果を生成している 1.わからないがMainExをインポートしているLogIn_1とLogIn_1をインポートすると奇妙に思える。お互いに変数をインポートするピンポンの種類。
は、私は次のように変更して右の成果にできる午前:
2
I: MainEx.py
from LogIn_1 import LogIn
global NumTry
NumTry = 2
#LogIn()
# xx is here just to show NumTry variable is further used in MainEx script
xx = NumTry*3
LogIn_1.py
def LogIn():
from MainEx import NumTry
# following are some computations involving NumTry
print NumTry
LogIn()
MainEx.pyを実行すると、結果を提供します将来の問題を回避するためのベストプラクティスを理解しようとしています。
@FMcに感謝しますが、私は1つの大きなプログラムに戻ってきましたが、これは有用であり、モジュールアプローチを学び続けるでしょう – Abacus