Warum macht es das? if - __name__ == '__main__' [doppelt]

8

Betrachten Sie diesen Code:

%Vor%

Was bedeutet die folgende Zeile?

%Vor%

Ich bin ohnmächtig geworden.

    
zjm1126 29.12.2009, 07:27
quelle

4 Antworten

9
___ answer1973499 ___

if ist eine Variable, die automatisch in einem ausführenden Python-Programm gesetzt wird. Wenn Sie %code% Ihres Moduls von einem anderen Programm verwenden, wird %code% auf den Namen des Moduls gesetzt. Wenn Sie Ihr Programm direkt ausführen, wird %code% auf %code% gesetzt.

Wenn also einige Dinge passieren sollen only Wenn Sie Ihr Programm über die Befehlszeile ausführen und nicht beim Import (z. B. Komponententests für eine Bibliothek), können Sie das %Vor%

Trick. Es ist ein übliches Python-Idiom.

    
___ qstntxt ___

Betrachten Sie diesen Code:

%Vor%

Was bedeutet die folgende Zeile?

%Vor%

Ich bin ohnmächtig geworden.

    
___ answer1973392 ___

Er hat ein Python-Modul geschrieben, das über %code% verwendet werden soll.

Wenn das Modul als Haupt-Python-Skript an den Interpreter übergeben wird, wird der von Ihnen angegebene Code ausgeführt. Dadurch wird die Methode %code% unter dem Python-Debugger aufgerufen.

    
___ qstnhdr ___ Warum macht es das? if - __name__ == '__main__' [doppelt] ___ tag123python ___ Python ist eine dynamische und stark typisierte Programmiersprache, die die Usability betont. Zwei ähnliche, aber größtenteils inkompatible Versionen von Python sind weit verbreitet (2 und 3). Wenn Sie eine versionsspezifische Python-Frage haben, sollten Sie die Tags [python-2.7] oder [python-3.x] zusätzlich zum Tag [python] verwenden. Wenn Sie eine Python-Variante wie jython, pypy, iron-python usw. verwenden, kennzeichnen Sie diese bitte entsprechend. ___ antwort1973391 ___

Dies trifft zu, wenn dieses Modul als eigenständiges Programm ausgeführt wird. Auf diese Weise kann etwas entweder als ein von einem anderen Programm importiertes Modul oder als eigenständiges Programm fungieren, aber den Code nur in der %code% -Anweisung ausführen, wenn es als Programm ausgeführt wird.

    
___ answer1973387 ___

Dies ist eine Überprüfung, um zu sehen, ob Sie das Skript direkt ausführen oder ob es in einer Bibliothek enthalten ist.

Wenn Sie ein Python-Skript wie folgt ausführen:

%Vor%

Er sendet einen Parameter, der Ihnen sagt, dass Sie die erste Methode des Programms ausführen sollen, die allgemein als "main" bezeichnet wird. Wenn %code% also %code% ist, wissen Sie, dass das Programm von einer Befehlszeile aus ausgeführt wurde / p>     

___
Brian Campbell 29.12.2009, 07:32
quelle
13

__name__ ist eine Variable, die automatisch in einem ausführenden Python-Programm gesetzt wird. Wenn Sie import Ihres Moduls von einem anderen Programm verwenden, wird __name__ auf den Namen des Moduls gesetzt. Wenn Sie Ihr Programm direkt ausführen, wird __name__ auf __main__ gesetzt.

Wenn also einige Dinge passieren sollen only Wenn Sie Ihr Programm über die Befehlszeile ausführen und nicht beim Import (z. B. Komponententests für eine Bibliothek), können Sie das %Vor%

Trick. Es ist ein übliches Python-Idiom.

    
Noufal Ibrahim 29.12.2009 08:11
quelle
4

Dies ist eine Überprüfung, um zu sehen, ob Sie das Skript direkt ausführen oder ob es in einer Bibliothek enthalten ist.

Wenn Sie ein Python-Skript wie folgt ausführen:

%Vor%

Er sendet einen Parameter, der Ihnen sagt, dass Sie die erste Methode des Programms ausführen sollen, die allgemein als "main" bezeichnet wird. Wenn __name__ also __main__ ist, wissen Sie, dass das Programm von einer Befehlszeile aus ausgeführt wurde / p>     

Filip Ekberg 29.12.2009 07:31
quelle
1

Er hat ein Python-Modul geschrieben, das über import verwendet werden soll.

Wenn das Modul als Haupt-Python-Skript an den Interpreter übergeben wird, wird der von Ihnen angegebene Code ausgeführt. Dadurch wird die Methode interact() unter dem Python-Debugger aufgerufen.

    
Heath Hunnicutt 29.12.2009 07:32
quelle

Tags und Links