ホームページ  >  記事  >  バックエンド開発  >  Python には main() 関数がないのはなぜですか?

Python には main() 関数がないのはなぜですか?

王林
王林転載
2023-08-28 11:05:061117ブラウズ

Python には main() 関数がないのはなぜですか?

この記事では、Python に main() 関数がない理由を理解します。

Python いわゆる main 関数 がないことは間違いありませんが、 「Pythonの主な機能」や「」はインターネット上でよく引用されています。 主な機能。 "

彼らの意図は、元の主なアプローチを再現することかもしれませんが、多くの 誤解されて (または誤解されて)、その結果、非常に複雑なコードが作成されてしまいます。

始める前に、次の 2 つの質問に答えます -

  • 「メイン関数」とは正確には何ですか?

  • なぜ一部のプログラミング言語では main 関数を使用する必要があるのでしょうか?

C/C、C#、Java、Go、Rust などの一部のプログラミング言語では、 main 関数は、プログラムの実行エントリとして、特定の意味を持ちます -

  • このメイン関数名は必須です。つまり、メイン関数が存在する必要があります。 関数。

  • main 関数は 1 つしか存在できないため、プログラムの各エントリは次のようになります。 個性的。

  • 構文形式には特定の要件があり、非常に一貫した (固定された) 規則に従っています。 テンプレート。

なぜメインエントリ機能を作成する必要があるのでしょうか? 義務?

これらは、コードを実行可能ファイルにコンパイルする必要があるコンパイル済み言語です。 オペレーティング システム/ブートローダーのバイナリを使用してプログラムのスタートアップを見つけることができるため、 この関数は定義する必要があります。

簡単に言うと、大量のコンテンツの中で定義する必要がある重要な始まりがあります。 実行可能コード。

主な関数は、これらの言語の基本的な有機的な機能です。

しかし、Python に戻ると、状況は劇的に変わります。

  • Python はインタープリタ言語であり、スクリプト言語としても知られています。これ 実行中のプロセスは、行ごとに上から下に実行されます。つまり、 出発点はわかっています。

  • .py ファイルは、プログラムのエントリ ポイントとして使用できる実行可能ファイルです。 プログラムのエントリ ポイントが柔軟であり、規則に従う必要がないことを意味します。 すでにフォロー中です。

  • エントリーファイルを指定せずにPythonプロジェクトを実行する場合( 「python -m http.server 8000」などの一般的なコマンド ラインは、次のことが原因である可能性があります。 パッケージ内の「ファイル」として次のことを行う main.py ファイルがあります。 操作する。

要約すると、スクリプト言語 Python はコンパイル言語とは異なります。できる 個々のモジュール (.py ファイルなど) のレベルで柔軟な実行手法を選択します。 または、他の言語とは異なり、多くのモジュールで構成されるパッケージレベルで これは、明確に定義されたエントリがなくても実現できます。

言い換えれば、Python ではプログラマが統一されたエントリ (または それは関数、クラス、またはその他の構文レベルです)。

一部のユーザーは、次のコードに頻繁に遭遇したり、記述したりするため、混乱する可能性があります -

リーリー

これは Python のメイン関数ではないでしょうか?多くの人が同意すると思います! -

######いいえ、ちがいます。

関数名が「

main

」であることを除いて、オーソドックスな main とは何の関係もありません。 前に説明した関数は必須ではなく、必ずしも順序を制御するものではありません プログラムの実行。それがなければ、構文上の問題は発生しません。

main

」関数を特定して、その「メイン」ステータスを強調したい人もいます。 これを手動で実行する最初の関数にします。 彼らは、そのような名前の関数の方が覚えやすいと考えるかもしれません。

main() が以下でのみ実行されることを証明するために if name =='main' と書きたいかもしれません。 現在のスクリプトは直接実行されるため、インポート時に実行しないでください。 他のモジュール。

ただし、この書き方はお勧めしません。

最も一般的な例: わずか数十行のコードまたはスクリプト ファイル 簡単な機能を実装(小型クローラー、タートルを使って絵を描くなど)、 しかし、それらはすべて以前と同じように書かれています。

次の理由により、 if

name__ == '__main'

- と記述することはお勧めできません。

    まず、エクスポート オプションがないため、ファイルが 1 つしかない場合です。
  • 2. ファイルが複数ある場合は、エントリファイル(main.py)にこの文を記述します。 強く落胆しました。出発点であるため、その内容は次のとおりであってはなりません。 他のモジュールで使用するためにエクスポートされます。
  • 最後に、ファイル数が多い非エントリーファイルにはこの判定を記述することはできません。 できることはこれらのテストのいくつかを作成することだけであるため、推奨されます。 プログラム。ただし、テストコードは分離して別の場所に保存する必要があります。 ディレクトリまたはファイル。
  • このような複雑なコードに遭遇するたびに、私は思わず心配してしまいます。なぜ if文は書きましたか?可能であれば、メイン関数を分離してください。 関数でラップしましょう!

要約

    慣性的思考を取り除き、実際のコードを構築します。メインエントリー機能 一部の言語に固有であるため、Python では使用しないでください。あなたがすべき スクリプト言語の特徴を理解し、シンプルでわかりやすい言語で書く 魅力的なスタイル。
  • main() の代わりに main.py を使用します。なぜならPythonのプログラム実行単位は 関数やクラスの代わりにスクリプト ファイルを使用する場合、エントリ ファイルの名前は main.py にする必要があります。 内部機能は要件によって決まります。

  • 可能な場合は、エントリ ファイルとして main.py を使用します。このファイルは非常に簡単にまとめて使用できます コマンドラインで「-m」パラメータを使用します。

###結論は###

この記事では、他のプログラミング言語とは異なり、Python にはなぜ次の機能が欠けているのかを学びました。 メイン機能。条件

__name__ == '__main__'

についても学びました。

以上がPython には main() 関数がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。

関連記事

続きを見る