2016-10-07 5 views
1

私はPythonには新しく、アクティブなモジュールから特定の変数を読み込み専用としてフェッチするモジュールを作成しようとしています。私はtest2でファイルをインポートしようとしましたが、printステートメントは長さを0として表示します。なぜ変数の現在のステータスを取得できず、初期化のみを読み取ることができないのかを理解しています。アクティブなPythonモジュールから更新された変数を取得できません

以下は私が試したことですが、どんな助けでも大歓迎です。

ありがとうございました。

test1.py

from datetime import datetime,timedelta 
import time 

data=[] 
stop=datetime.now()+timedelta(minutes=5) 
while datetime.now()<stop: 
     time.sleep(1) 
     data.append(datetime.now().time()) 

test2.py:あなたがその特定のモジュールを実行したときにのみ実行されます内

if __name__ == "__main__" 

コード:

from test1 import * 
print len(data) 

答えて

0

あなたが文をラップPythonインタプリタから。だからあなたの主な機能は実行され得ることはありません、あなたが実行しない限り、結果的に自分のデータ変数は、初期化されません。

python test2.py 

あなたは、実際にはその句を削除することができますし、期待どおりに動作します。

+0

ありがとうアンドリュー、私はあなたを正しく理解しています。編集したコードを確認してください。私がPython test2.pyを実行すると、test1コードが実行され、whileループでスタックされます。私はtest2.pyがする必要があるのは私にデータ変数を返して終了することだけです。基本的な要件は、test1がリストに値を作成して格納し、他の目的で現在の状態のリストにアクセスするためのtest2を持つことです。 – user1590192

+0

私はあなたが何をしようとしているのか完全にはわからないと思います。あなたがtest2.pyからアクセスしている間に更新を続けている別のモジュールにリストを作成しようとしているなら、これはうまくいきません。その場合、2つの異なる操作スレッドとキューを持つ必要があります。たぶんあなたは何を達成しようとしていますか? –

関連する問題