理由
私たちは、Pythonでプロジェクトを作成しますが、最初の実行後に、プロジェクトへのうねりのルートを見つける__pycache__
にはさまざまなフォルダと同じ名前のPYのファイルで発見されたフォルダ、 .cpython-35.pyc
ファイルの終わり。
呼び出しモジュール
:インポートモジュール、モジュールが実際に次のように、導入再び実行されるPythonの
モジュールを見ては、test.pyと呼ばれています。
1 DEF 面白い():
2 プリント("有趣" )
3
4面白いです()
メインプログラムmain.pyを見てください:
。1 インポートテスト
2
。3 印刷("こんにちは")
結果は以下のとおりです。
1、興味深い
2こんにちは
次に、どのように単純にコードモジュールがそれを起動され実行せずに呼び出すことができますか?モジュールのコードが実行されませんと呼ばれるように、変数__name__の前提は、それは要するに、何を意味するのか知っている必要がありますが、その後、インポートされたモジュールを含まない場合は__値name__は、このモジュールをインポートする際に__main__、場合と引用されています、次いで、値は、このモジュール(の.pyせず)内のファイル名__name__は test_1.pyは次のように:
1 DEF おかしい(): 2 印刷("面白い" ) 3 4おかしい()
5 印刷(__name__)#を呼び出す必要としません
結果のtest_1.py実装:
1、興味深い
2 __main__
TEST_1導入引用し、このようTEST_2場合:
。1 インポートTEST_1
2
。3 印刷("こんにちは")
test_2x業績は次のとおりです。
1つの、興味深い
2 TEST_1
3こんにちは
トップは理解して言ったならば、我々は、中に呼び出されるモジュールであり、もし__name__ ==「__main__」は、判決前に、実行可能なコードと一緒に:、コードモジュールは実行されませんと呼ばれるように!
基本的な操作機構パイソン
おそらく、最初の基本的な操作機構のpythonを見てください。バイナリコードにコンパイルPythonは、時間を実行する必要があり、ソースから直接プログラムを実行し、シンプルではありません、Pythonインタプリタは、バイトコードにソースコードを変換し、インタプリタでバイトコードを実行します。
特定の作業インタプリタ:
1は、モジュールのロードとリンク完了するために、
2を、ソースコードを読み取ることPyCodeObjectオブジェクト(すなわち、バイトコード)、CPUの書き込みメモリにコンパイルされ、
図3に示すように、メモリから読み出して実行します、PyCodeObjectの終了後にすべてのスクリプトの現在のディレクトリにバイトコードファイルを保存するために戻って.pycファイルにコピーされ、その中のハードディスクまたは.pyoファイルに書かれました。
[ソースファイルの後のバイト・コード・ファイルかどうかをバイトコードファイル変更時間]再度スクリプトを実行した後、これは、最初に確認ローカル[上記]とするかどうか場合が直接実行され、そうでない場合は上記の手順を繰り返します。
__pycache__フォルダを意味
コードの実行は、Pythonインタプリタは、後でもう一度実行されるように、__pycache__フォルダにバイトコードにコンパイルされた、およびモジュールが呼び出された場合は変更されませんでした初めてのため、このステップのコンパイルをスキップ、関連する*する.pycファイルを実行するために__pycache__フォルダに直接移動大いにプロジェクトの操作前の準備時間を削減します。