1. ホーム
  2. python

[解決済み] .pycファイルはいつリフレッシュされますか?

2023-01-28 08:52:14

質問

私は ".pyc" ファイルがプレーンテキストの ".py" ファイルのコンパイル版であり、プログラムをより速く実行するために実行時に作成されることを理解しています。しかし、私はいくつかのことを観察しました。

  1. py" ファイルを変更すると、プログラムの動作が変化します。これは、"py" ファイルがコンパイルされるか、少なくともある種のハッシュ処理を経て、または再コンパイルすべきかどうかを判断するためにタイム スタンプを比較することを示します。
  2. すべての ".pyc" ファイルを削除すると ( rm *.pyc ) を削除すると、プログラムの動作が変化することがあります。これは、".py"の更新時にそれらがコンパイルされていないことを示しています。

質問です。

  • コンパイルするタイミングはどのように決めるのですか?
  • 開発時にもっと厳しいチェックをする方法はありますか?

どのように解決するのですか?

その .pyc ファイルは、その Python ファイルが他のスクリプトによって import されたときだけ作成されます (そしておそらく上書きされます)。import が呼び出された場合、Python は .pyc ファイルの内部タイムスタンプが、対応する .py ファイルよりも古くなければなりません。 もしそうなら、それは .pyc を読み込みますが、そうでない場合、あるいは .pyc がまだ存在しない場合、Python は .py ファイルを .pyc に変換してロードします。

より厳密なチェックとはどういう意味ですか?