Pythons Main-Funktion verstehen: Praktischer Leitfaden zu def main()
Was ist die Python Main-Funktion?
Die Main-Funktion in Python markiert den Einstiegspunkt eines Programms. Wenn ein Skript direkt ausgeführt wird, führt der Interpreter den Code sequenziell aus. Code innerhalb von def main() läuft nur, wenn das Skript das primäre Modul ist, nicht beim Import an anderer Stelle.
Lassen Sie uns ein klares Beispiel durchgehen.
Beispiel 1: main() definieren
def main():
print("Hello World!")
print("Guru99")
Das Ausführen dieser Datei gibt nur Guru99 aus. Die Zeile Hello World! bleibt inside main() und wird nie aufgerufen.
Um main() auszuführen, wenn das Skript als Hauptprogramm läuft, müssen Sie es mit folgendem Guard schützen:
if __name__ == "__main__":
main()
Nun verhält sich das Skript wie erwartet.
Beispiel 2: Korrektes Guarding
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
Wenn Sie diese Datei ausführen, zeigt die Konsole:Hello World!Guru99
Warum funktioniert das? Der Interpreter setzt die spezielle Variable __name__ auf "__main__", wenn eine Datei direkt ausgeführt wird. Der Guard prüft diese Bedingung, bevor er main() aufruft.
Die Rolle von __name__ und Modulen
Das Verständnis von __name__ ist essenziell für wiederverwendbaren Code.
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Wert in eingebauter Variable name ist: ", __name__)
Direktes Ausführen der Datei gibt die beiden Messages und __name__ als "__main__" aus. Wenn Sie dieses Skript als Modul importieren:
import mainfunction
print("done")
sehen Sie nur done und __name__ spiegelt den Modulnamen wider, sodass main() nicht automatisch ausgeführt wird.
Kurz gesagt:
- Direkter Lauf:
__name__ == "__main__"→main()läuft. - Import als Modul:
__name__ != "__main__"→main()wird übersprungen.
Python 3 erfordert if __name__ == "__main__": nicht für einfache Skripte, aber die Verwendung des Guards ist Best Practice, besonders wenn die Datei wiederverwendet werden könnte. In Python 2 bleibt die Syntax gleich, aber print-Statements unterscheiden sich:
def main():
print "Hello World!"
if __name__ == "__main__":
main()
print "Guru99"
In Python 3 können Sie auch schreiben:
def main():
print("Hello World!")
main()
print("Guru99")
Beachten Sie: Behalten Sie nach der def main():-Zeile immer die korrekte Einrückung bei, um Fehler zu vermeiden.
Python
- Python Lambda-Funktionen: Praxisleitfaden zu anonymen Funktionen
- Python Generatoren: Effiziente Iteration und fortgeschrittene Anwendungsfälle
- Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
- Python Decorators meistern: Funktionen mit Experten-Techniken erweitern
- Pythons strip()-Methode meistern: Umfassender Leitfaden & Praxisbeispiele
- Python len(): Praktischer Leitfaden zur Messung von Objektlängen
- Pythons String.find()-Methode meistern: Syntax, Beispiele & Alternativen
- Python Lambda-Funktionen meistern: Praxisbeispiele & Best Practices
- Python round()-Funktion erklärt mit praktischen Beispielen
- Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices