Was bewirkt if name == “main”:?

In Python gibt es eine spezielle Variable mit dem Namen __name__, die den Namen des aktuellen Moduls enthält. Wenn ein Python-Skript direkt ausgeführt wird, wird der Wert der __name__-Variable auf "__main__" festgelegt. Wenn das Skript jedoch als Import für ein anderes Skript verwendet wird, wird der Name des Moduls verwendet.

Daher wird die folgende Anweisung verwendet, um bestimmte Code-Abschnitte nur dann auszuführen, wenn das Skript direkt ausgeführt wird:

if __name__ == "__main__":
    # code to be executed only when the script is run directly

Dies ist nützlich, wenn das Skript als Import für ein anderes Skript verwendet werden soll, aber bestimmte Code-Abschnitte nur dann ausgeführt werden sollen, wenn das Skript direkt ausgeführt wird.

Hier ist ein Beispiel:

def function1():
    # code for function 1

def function2():
    # code for function 2

if __name__ == "__main__":
    function1()
    function2()

In diesem Beispiel werden die Funktionen function1 und function2 nur dann aufgerufen, wenn das Skript direkt ausgeführt wird. Wenn das Skript jedoch als Import für ein anderes Skript verwendet wird, werden die Funktionen nicht aufgerufen.