Pythonでのmainメソッドの使い方

王林
リリース: 2023-05-05 13:25:06
転載
3136 人が閲覧しました

Text begins

if name == "main": Java の main() メソッドと同じように、Python プログラムの入り口とみなすことができますが、完全に正しいわけではありません。

実際には、Python プログラムは上から下に 1 行ずつ実行されます。.py ファイルでは、def の後に定義された関数を除いて、コードは「main」の内容とみなされます。メソッドを上から下に実行します。素晴らしい「hello world」を書きたいだけで、関数は書きたくない場合は、 print(‘hello world’) だけを実行できます。これは「プログラム」であり、いわゆる「メイン」は必要ありません。 "メソッドエントリ。もちろん、関数 function をテストしている場合は、.py ファイルに if name == "main" と記述してから関数を呼び出す必要があります。

たとえば、次の hello.py ファイル:

print("first")
 
 
def sayHello():
    str = "hello"
    print(str);
    print(__name__+'from hello.sayhello()')
 
 
if __name__ == "__main__":
    print ('This is main of module "hello.py"')
    sayHello()
    print(__name__+'from hello.main')
ログイン後にコピー

実行結果:

first
This is main of module "hello.py"
hello
__main__ from hello.sayhello()
__main__ from hello.main
ログイン後にコピー

意味がわかりますか?まず print の 1 行目を実行してから、「entry」の中のものを実行します。

そういえば、if name == "main" という文はどういう意味でしょうか?

name__ は実際には、現在の py ファイルを呼び出す方法を示す組み込み属性です。上記の例を実行すると、プログラム全体の __name__ 属性がどこにあっても、値は __main になります。この hello.py ファイルが、world .py などの別の .py ファイル (つまり、インポート) にモジュールとしてインポートされると、値は __main になります。で、world.py を実行していると、hello.py の __name__ 属性が hello になります。if 判定が失敗するため、いわゆる入り口は実行されません。

つまり、if 文が判定されます。 main() メソッドは正常に仮想化されました。

前述したように、phthon は 1 行ずつ実行されるため、import hello を読み取ると、hello.py も実行されます。たとえば、次の world.py ファイルを実行します:

import hello#上一个例子的hello.py
 
if __name__ == "__main__":
    print ('This is main of module "world.py"')
    hello.sayHello()
    print(__name__)
ログイン後にコピー

Execution結果:

first
This is main of module "world.py"
hello
hellofrom hello.sayhello()
main
ログイン後にコピー

hello.py の print(‘first’) の最初の行が直接実行され、hello.py の __name__ も hello を出力し、world.py の名前が出力されることがわかります。出力は__main__

です

以上がPythonでのmainメソッドの使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート