ここには、次の 2 つの明確なポイントがあるように思われます。
他のすべての条件が同じであれば、400 行の命令コードによって表される動作をカプセル化する関数を定義する方が、読みやすさ、テストのしやすさ、保守のしやすさ (およびおそらく「-ability」の他の値) にとって優れています。
で修飾されたコードは、 でモジュールとして含まれているので__name__ == '__main__'
はなく、ファイルが直接呼び出されたときにのみimport
実行されます。したがって、次のようなファイル
def be_awesome():
pass
if __name__ == '__main__':
def be_more_awesome():
pass
be_more_awesome
インポートされたときではなく、python の呼び出しへのソース引数として提供されたときの定義のみを持ちます。したがって、原則として__name__
、ファイルをスクリプトとして直接実行する場合にのみ実行する必要があるコードを正確にテストの後に配置することが適切です。これらの質問を自問してください
- 「このモジュールを別のファイルにインポートした場合、このコードが実行されるのはよくありませんか?」
- 「このファイルを直接呼び出すときに、このコードを呼び出す必要がありますか?」
main
( 400 行をカプセル化する仮想関数の場合のように)
これらの質問のいずれかに対する答えが「はい」の場合、それは (おそらく)__name__
テスト後に属します。そうでない場合は、(おそらく)そうではありません。