2016-08-21 3 views
0

私は別のスクリプト(Main.py)のモジュールとしてインポートしているスクリプト 'xyz.py'を持っています。 xyz.pyのすべては、私がMain.pyで呼び出すクラスの中にあります。 xyz.pyとMain.pyは同じインポート文を共有します: "xml.etree.ElementTree"; "Tkinter"; "cv2"; "tkFileDialog"; "tkfd"; "PILインポートイメージから"; "ImageTk"; "os"なぜスクリプトはモジュールとして高速に動作しますか?

私は、Main.pyで、すべてのメソッドとステートメントxyz.pyを持つクラスを実行すると、メインスクリプトよりもモジュールとして高速に動作することに気付きました。 私が他のものをスピードアップするのに使うことができるこの観察の背後にある一般的な事実はありますか?ありがとうございました。

PS:400行以上を要約しているため、私はコードを提供していませんでした。私は何を見ているのか正確にはわからないので、関連サンプル。

答えて

0

pythonプログラムを実行すると、メインスクリプトは常にインタープリタを通過します。しかし、モジュールがインポートされると、Pythonはそのキャッシュ(サブディレクトリ__pycache__)をチェックします。このモジュールでは、以前にバイトコードにコンパイルされたモジュールが格納されます。キャッシュされたコピーの日付がソースコードの日付と一致する場合、キャッシュされたバージョンが使用されます。それはおそらく、あなたが見ているものを説明します。

関連する問題