GoogleはPythonのチュートリアルを持っており、彼らは「不幸」として定型的なコードを記述して、この例を提供します。Pythonの "Boilerplate"コードですか?
今#!/usr/bin/python
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print 'Hello there', sys.argv[1]
# Command line args are in sys.argv[1], sys.argv[2] ..
# sys.argv[0] is the script name itself and can be ignored
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
main()
、私は何度も何度も現れる「一見反復コードとして記述されている定型的なコードを聞きましたはるかに簡単であるように見える結果を得るために」(example)。
とにかく、Pythonであった上記の例の "定型" コードと見なさ一部:次のように
if __name__ == '__main__':
main()
は今、私の質問は以下のとおりです。
1)のように(Pythonで定型的なコードをい提供された例)は、私が提供した定義と同じ定義をとっていますか?もしそうなら、なぜですか?
2)このコードは必要ですか?主な方法があるかどうかにかかわらず、コードが実行されるように思えます。このコードをより良く使うには?それはさらに良いですか?
3)なぜ私たちはそのコードを使用し、どのサービスを提供しますか?
4)これはPython全体で発生しますか? 「定型コード」の他の例はありますか?
ああ、話題にならない質問:import sys
Pythonでコマンドライン引数を使用する必要がありますか?このような議論が存在しなければ、それはどのように扱われますか?
あなたがそれをインポートするかどうかにかかわらず、 'sys'が存在します。そうでない場合は、コード内で使用することはできません。 –
この特定の定型コードについてのコメントですが、これはユーザ/環境固有のpythonバージョンを取得するため、 '!#/ usr/bin/python'の代わりに常に'#!/ usr/bin/env python'を使用するべきです。これは、ユーザがPythonを他のものと呼ぶか、/ bin以外の場所にインストールすることが可能であるため、これらの事柄のいずれも真ではありません。しかし、これに由来するエラーを処理した人として、私はあなたには非常にイライラしていると伝えることができます。パスのハードコーディングと相対パスの違いのようなものです。 – guribe94
たとえばPython 2と3の定型文は、[python-boilerplate.com](https://www.python-boilerplate.com) –