97

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

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

質問:

  • いつコンパイルするかをどのように決定しますか?
  • 開発中のチェックをより厳密にする方法はありますか?
4

2 に答える 2

86

ファイルは、その.pycpython ファイルが他のスクリプトによってインポートされた場合にのみ作成されます (場合によっては上書きされます)。.pycインポートが呼び出されると、Python はファイルの内部タイムスタンプが対応するファイルより古くないかどうかを確認し.pyます。ある場合は、.pyc;をロードします。そうでない場合、または が.pycまだ存在しない場合、Python は.pyファイルを にコンパイルして.pycロードします。

「より厳しいチェック」とはどういう意味ですか?

于 2013-04-05T17:11:18.690 に答える