2016-12-22 4 views
0

私の '/'ディレクトリは次のようになっています。起動が実行されるとアクティブなモジュールをすべて同じ '名前空間'に入れるにはどうしたらいいですか?

Launch.py 
Services.py 
Server.py 
ServerHelper.py 
Packetlib.py 

、サービスおよびサービスをインポートServerhelper、輸入サービス、サービス、サーバ、およびPacketLibを、インポートされ、輸入のサービスやサーバーを起動します。

問題を表示しますか?

これは、コード編成に関してはひどい方法ですが、ServicesおよびPacketLibでリアルタイムに読み取りおよび変更できるようにするには、Serverで定義された変数が必要です。その上に、私はこれらの変数のうちの8つを3つのスクリプトに渡って持っています。

インポートされたすべてのスクリプトを同じ「名前空間」に入れて、偽の再帰インポートの必要性を取り除き、「無限のスクリプト間で変数を1つ」実行モデルに許可する方法は?

答えて

0

再帰的なインポートに問題はありません。

import 'と' xxx import yyy 'は実行文です。実行中のプログラムがその行に到達すると、それらは 実行されます。

モジュールがsys.modulesにない場合、インポートによってsys.modulesに新しい モジュールエントリが作成され、モジュール内でコードが実行されます。 の実行が完了するまで、呼び出し元モジュールに制御を返しません。

モジュールがsys.modulesに存在する場合、インポートは実行を完了したかどうかにかかわらず、そのモジュール を返します。サイクリックインポートが、部分的に部分的に表示されるモジュールを返すことがある理由は、 の理由です。 が空です。

+0

Pythonは暗黙のうちに複数のインポートを処理し、物事を2回インポートしません。 – postoronnim

+0

これは上記の意味です – Hisagr

関連する問題