Python Hauptfunktion & Methode: Verstehen Sie def Main()
⚡ Intelligente Zusammenfassung
Python Die `main`-Funktion markiert den Startpunkt, an dem der Interpreter mit der Programmausführung beginnt. Sie wird mit `def main()` definiert und mit der Bedingung `if __name__ == “__main__”` verknüpft. Dadurch wird wiederverwendbarer Modulcode von der Ausführung eigenständiger Skripte getrennt.

Was ist Python Hauptfunktion?
Das Python Hauptfunktion ist der Ausgangspunkt jedes Programms. Wenn das Programm ausgeführt wird, Python Der Interpreter führt den Code sequenziell aus. Die Hauptfunktion wird nur dann ausgeführt, wenn sie als Interpreter ausgeführt wird. Python Das Programm. Die Hauptfunktion wird nicht ausgeführt, wenn es als Modul importiert wird.
Was ist die def main() Funktion in PythonUm dies zu verstehen, betrachten Sie den folgenden Beispielcode, der Teil des Kerns ist. Python Programmierung Grundlagen:
def main() Beispiel 1
def main():
print ("Hello World!")
print ("Guru99")
Hier haben wir zwei Ausgaben – eine ist innerhalb der Hauptfunktion definiert und lautet „Hello World!“, die andere ist unabhängig und lautet „Guru99”. Wenn Sie die Funktion def main() ausführen:
- Nur "Guru99-Zoll-Ausdrucke
- und nicht der Code „Hallo Welt!“
Das liegt daran, dass wir den Aufruf nicht erklärt haben Funktion „if__name__== „__main__“.
Es ist wichtig, dass Sie nach der Definition der Hauptfunktion den Code mit if__name__== „__main__“ aufrufen und dann den Code ausführen. Nur dann erhalten Sie die Ausgabe „Hallo Welt!“ in der Programmierkonsole. Betrachten Sie den folgenden Code
def main() Beispiel 2
def main():
print("Hello World!")
if __name__ == "__main__":
main()
print("Guru99")
GuruIn diesem Fall wird 99 gedruckt.
Hier ist die Erklärung,
- Wenn die Funktion Python Wenn der Interpreter eine Quelldatei liest, führt er den gesamten darin enthaltenen Code aus.
- Wenn die Funktion Python führt die „Quelldatei“ als Hauptprogramm aus und setzt die spezielle Variable (__name__) auf einen Wert („__main__“).
- Wenn Sie die Hauptfunktion in Python ausführen, liest sie die „if“-Anweisung und prüft, ob __name__ gleich __main__ ist.
- In Python „if__name__== „__main__“ ermöglicht Ihnen die Ausführung des Python Dateien entweder als wiederverwendbare Module oder eigenständige Programme.
Warum sollte man eine main()-Funktion verwenden? Python?
Python Es zwingt Sie nicht dazu, eine Hauptfunktion zu schreiben, dennoch verwenden erfahrene Entwickler sie in fast jedem komplexeren Skript. Das `def main()`-Muster sorgt für Struktur in einer Datei und macht den Code wiederverwendbar. Hier sind die wichtigsten Gründe für seine Verwendung:
- Klarer Zugangspunkt: Eine main()-Funktion zeigt dem Leser genau, wo das Programm beginnt, sodass die Logik leicht nachvollziehbar ist.
- Wiederverwendbare Module: Code Die Bedingung if __name__ == “__main__” wird nur bei direkter Ausführung ausgeführt, sodass andere Dateien Ihre Funktionen ohne Nebenwirkungen importieren können.
- Lokaler Gültigkeitsbereich: Innerhalb von main() erzeugte Variablen bleiben lokal, wodurch versehentliche Namenskonflikte mit globalen Variablen an anderer Stelle im Modul vermieden werden.
- Einfacheres Testen: Durch die Isolierung der Logik in main() kann eine Testsuite diese direkt aufrufen und das Ergebnis überprüfen.
- Gemeinsame Konvention: Eine main()-Funktion ist ein allgemein anerkanntes Signal für den Programmeinstiegspunkt, was die Wartbarkeit teamübergreifend verbessert.
Kurz gesagt, eine main()-Funktion ist optional in PythonAber dadurch bleiben auch größere Programme lesbar, testbar und sicher zu importieren.
Die Variable __name__ und Python Modul
Um die Bedeutung der Variable __name__ zu verstehen in Python Hauptfunktionsmethode, berücksichtigen Sie den folgenden Code:
def main():
print("hello world!")
if __name__ == "__main__":
main()
print("Guru99")
print("Value in built variable name is: ",__name__)
Bedenken Sie nun, dass Code als Modul importiert wird
import MainFunction
print("done")
Hier ist die Code-Erklärung: Wie C, Python verwendet == für den Vergleich und = für die Zuweisung. Python Der Interpreter verwendet die Hauptfunktion auf zwei Arten
Direktlauf:
- __name__=__main__
- if-Anweisung == True, und das Skript in _main_wird ausgeführt
als Modul importieren
- __name__= Dateiname des Moduls
- Wenn die Anweisung == false ist, wird das Skript in __main__ nicht ausgeführt
Wenn der Code ausgeführt wird, wird mit „if“ nach dem Modulnamen gesucht. Dieser Mechanismus stellt sicher, dass die Hauptfunktion nur als Direktlauf ausgeführt wird, nicht wenn sie als Modul importiert wird.
Die obigen Beispiele sind Python 3 Codes, wenn Sie verwenden möchten Python 2, bitte beachten Sie den folgenden Code
def main(): print "Hello World!" if __name__== "__main__": main() print "Guru99"
In Python 3, Sie müssen if__name nicht verwenden. Der folgende Code funktioniert auch
def main():
print("Hello World!")
main()
print("Guru99")
Hinweis: Stellen Sie sicher, dass Sie nach dem Definieren der Hauptfunktion einen Einzug lassen und den Code nicht direkt unter der Funktion „def main():“ deklarieren. Andernfalls tritt ein Einzugsfehler auf.
Wie man Befehlszeilenargumente an den Python main()-Funktion
Eine main()-Funktion ist der natürliche Ort, um die Eingaben zu verarbeiten, die ein Benutzer über die Kommandozeile übermittelt. Python Diese Werte werden in der Liste `sys.argv` gespeichert, die vom Standardmodul `sys` bereitgestellt wird. Das erste Element, `sys.argv[0]`, ist der Skriptname, und jeder nachfolgende Wert ist ein vom Benutzer angegebenes Argument.
Das folgende Beispiel liest und gibt Kommandozeilenargumente innerhalb einer main()-Funktion aus:
import sys def main(): print("Script name:", sys.argv[0]) print("Arguments passed:", sys.argv[1:]) if __name__ == "__main__": main()
Wenn Sie die Datei als script.py speichern und ausführen python script.py alpha betaDas Programm gibt den Skriptnamen und die Liste ['alpha', 'beta'] aus. Da die Werte innerhalb von main() eintreffen, bleibt die Logik übersichtlich und leicht testbar.
Hier einige praktische Tipps für die Arbeit mit der Kommandozeileneingabe:
- Den Skriptnamen abschneiden: Verwenden Sie sys.argv[1:], um nur die vom Benutzer eingegebenen Argumente zu lesen.
- Verwenden Sie argparse für echte Werkzeuge: Das integrierte Modul argparse analysiert Flags, Optionen und Hilfetexte wesentlich sicherer als das manuelle Lesen von sys.argv.
- Gibt einen Exit-Code zurück: Umschließen Sie den Aufruf mit sys.exit(main()), sodass der Rückgabewert von main() zum Exit-Status des Prozesses wird.
- Frühzeitig validieren: Überprüfen Sie die Anzahl und Art der Argumente am Anfang der main()-Funktion, bevor Sie den Rest des Programms ausführen.
Dieses Muster wandelt ein einfaches Skript in ein zuverlässiges Kommandozeilen-Tool um, während es gleichzeitig die Funktionalität beibehält.ping jeder Schritt innerhalb einer einzigen, testbaren main()-Funktion.
Python main()-Funktion im Vergleich zu anderen Programmiersprachen
Entwickler aus der C-Welt, C++den Java oft wird eine obligatorische main()-Funktion erwartet. Python Das funktioniert anders, weil es sich um eine interpretierte Sprache handelt; der Interpreter führt eine Datei einfach von der ersten Zeile bis zum Ende aus. Die main()-Funktion in Python ist daher eher eine Konvention als eine Regel.
- C, C++, C# und Java: Eine main()-Funktion ist ein erforderlicher Einstiegspunkt. Sie wird von der Laufzeitumgebung automatisch aufgerufen und kann nur eine pro Programm haben.
- Python: Eine main()-Funktion ist nicht erforderlich. Die Ausführung beginnt in der ersten Zeile der Datei, und die main()-Funktion wird nur dann ausgeführt, wenn sie im Code aufgerufen wird.
- Der Wächter: Der if __name__ == “__main__”-Block gibt Python ein ähnlicher Zweck wie eine kompilierte main()-Funktion, indem Code markiert wird, der nur dann ausgeführt werden soll, wenn die Datei das Hauptprogramm ist.
Während andere Sprachen also einen main()-Einstiegspunkt erzwingen, Python überlässt Ihnen die Wahl und bietet dieselbe Klarheit durch Konventionen anstelle einer Compilerregel.




