私は次のように最初の関数を定義するコードの書き換え/で働いている:なぜdef main(argv = [__ name__])とif __name__ == "__main__":sys.exit(main(sys.argv))?
def main(argv=[__name__]):
...
*rest of code*
...
で終わるを:
if __name__ == "__main__":
sys.exit(main(sys.argv))
私はこれが何をやっていることは確認しているという印象の下によスクリプトがコマンドラインから実行されていることを確認してから、Pythonを終了するときに引数を指定してmain
という関数を実行します。しかし、関数定義で変数argv
を[__name__]
にプリセットする必要があるのはなぜですか?これは私のコードではないので、私はこの背後にある本来の意図を知らない。しかし、私は、if __name__ == "__main__":
行をスポットコマンドラインの実行を確認するのが初めてです。だから、私はこの構文のための明らかな理由がいくつかあります。任意のヘルプ、またはmain
の関数定義と引数/コマンドライン対モジュールテストの詳細については、ご理解ください。
'sys.exit()'には何も変わりありません。私たちのナレッジベースには、 '__name__'と' __main__'を比較した習慣についての質問が既にあります。重複するコンポーネントがなくなるように質問を絞り込んでください。間違いなく、事前に回答された質問と回答されていない質問の両方にまたがっていると、それは「あまりにも広すぎる」。 –
...多くの中の1つの例:[なぜ 'def main()'を使うのですか?](http://stackoverflow.com/questions/4041238/why-use-def-main) –