2016-08-10 6 views
0

私はまだ学習段階にあり、この質問があります。__main__とlaunch()メソッドの違い

だからクラスを実行するために、我々はif __name__ == '__main__':を使用して、次の

class Example(): 
    def test(self): 
     print "Hello There" 

if __name__ == '__main__': 
    Example() 

としてクラスを呼び出すしかし、私は​​の代わりif __name__ == '__main__':を使用するいくつかのクラスなので、ここで質問を見た:彼らは似ていますだから両方の方法がありますか​​には特別な提案がありますか?

ありがとうございます。

+2

Pythonで起動するようなことはありません。あなたが 'def test()'と同じように関数名を宣言しているに違いありません。他に何もない。 – harshil9968

+0

私はあなたのチュートリアルで 'launch'という関数を作成し、それを実行するために関数本体の中からクラスを呼び出したと仮定していますか? – Harrison

+0

また、クラス内の別の関数を「起動」しましたか? – Harrison

答えて

-1

Pythonはトップレベルで何かを実行します。これは、(他の理由の中でも)クラスと関数を使用してジョブを区切る理由です。ここ

たとえば、スクリプトのためので

a.py

def main(): 
    pass 

main() 
それはトップレベルで main()コールに到達したときには(左最も整列) main()と呼ばれる関数を定義しますインタプリタは それが実行されます

メイン機能。

さてこれは、誰かがプログラムまたはクラスをインポートしたいが、それはときに実行したくない場合に使用されている

__name__ = __main__ 

対あなたのlaunch()

if __name__ == '__main__': 
    Example() 

の場合通訳者がそれに入ります。

インポートaがしかしのはb.pyが構造的に類似しているが、代わりにmain()のそれは直接呼び出さない限りb.pyが実行されません__name__ = __main__を、持っているとしましょう、その時点でmain()を呼び出し、時間 ます。

@ harshil9968が指摘しているように、Pythonには「起動」メソッドがないため、これを実行する理由があります。どのような可能性が起こったことは、彼らが次に

class A(): 
    def launch(self): 
     #actions 

if __name__ == '__main__': 
    A() 

コールAクラス内のメソッドを呼び出しますlaunch()A()にクラスの下に置く代わりにmain()

launch()方法を定義しています。

+0

ありがとうございます。よく説明されています:) – Alli

+0

'A'を呼び出すと' launch() 'は呼び出されません。それはなぜでしょうか? – BlackJack

関連する問題