Hauptfunktionen in Python definieren

Hauptfunktionen in Python definieren

Viele Programmiersprachen haben eine spezielle Funktion, die automatisch ausgeführt wird, wenn ein Betriebssystem ein Programm ausführt. Diese Funktion wird normalerweise alsmain() bezeichnet und muss einen bestimmten Rückgabetyp und Argumente gemäß dem Sprachstandard haben. Auf der anderen Seite führt der Python-Interpreter Skripte aus, die am Anfang der Datei beginnen, und es gibt keine bestimmte Funktion, die Python automatisch ausführt.

Ein definierter Ausgangspunkt für die Ausführung eines Programms ist jedoch hilfreich, um zu verstehen, wie ein Programm funktioniert. Python-Programmierer haben verschiedene Konventionen entwickelt, um diesen Ausgangspunkt zu definieren.

Am Ende dieses Artikels werden Sie verstehen:

  • Was ist die spezielle Variable__name__und wie definiert Python sie?

  • Warum sollten Sie in Python einmain() verwenden?

  • Welche Konventionen gibt es für die Definition vonmain() in Python?

  • Was sind die Best Practices für den Code, der in Ihremain() eingefügt werden soll?

Free Bonus:Click here to get access to a chapter from Python Tricks: The Book zeigt Ihnen die Best Practices von Python anhand einfacher Beispiele, die Sie sofort anwenden können, um schöneren + Pythonic-Code zu schreiben.

Ein Basic Python main ()

In einigen Python-Skripten sehen Sie möglicherweise eine Funktionsdefinition und eine bedingte Anweisung, die wie im folgenden Beispiel aussehen:

def main():
    print("Hello World!")

if __name__ == "__main__":
    main()

In diesem Code gibt es eine Funktion namensmain(), die die PhraseHello World! druckt, wenn der Python-Interpreter sie ausführt. Es gibt auch eine bedingte Anweisung (oderif), die den Wert von__name__ überprüft und mit der Zeichenfolge"__main__" vergleicht. Wenn die AnweisungifTrue ergibt, führt der Python-Interpretermain() aus. Weitere Informationen zu bedingten Anweisungen finden Sie inConditional Statements in Python.

Dieses Codemuster ist in Python-Dateien, in denen Sieexecuted as a script undimported in another module sein möchten, weit verbreitet. Um zu verstehen, wie dieser Code ausgeführt wird, sollten Sie zunächst verstehen, wie der Python-Interpreter__name__ abhängig von der Ausführung des Codes festlegt.

Ausführungsmodi in Python

Es gibt zwei Möglichkeiten, wie Sie den Python-Interpreter anweisen können, Code auszuführen oder zu verwenden:

  1. Sie können die Python-Datei alsscript über die Befehlszeile ausführen.

  2. Sie können den Code von einer Python-Datei in eine andere Datei oder in den interaktiven Interpreterimport.

Sie können viel mehr über diese Ansätze inHow to Run Your Python Scripts lesen. Unabhängig davon, auf welche Weise Sie Ihren Code ausführen, definiert Python eine spezielle Variable namens__name__, die eine Zeichenfolge enthält, deren Wert davon abhängt, wie der Code verwendet wird.

In dieser Beispieldatei, die alsexecution_methods.py gespeichert ist, wird untersucht, wie sich das Verhalten des Codes je nach Kontext ändert:

print("This is my file to test Python's execution methods.")
print("The variable __name__ tells me which context this file is running in.")
print("The value of __name__ is:", repr(__name__))

In dieser Datei sind drei Aufrufe vonprint()definiert. Die ersten beiden drucken einige einleitende Sätze. Das dritteprint() druckt zuerst die PhraseThe value of __name__ is und dann die Darstellung der__name__-Variablen unter Verwendung der in Python integriertenrepr().

In Python zeigtrepr() die druckbare Darstellung eines Objekts an. In diesem Beispiel wirdrepr() verwendet, um hervorzuheben, dass der Wert von__name__ eine Zeichenfolge ist. Weitere Informationen zurepr() finden Sie unterPython documentation.

In diesem Artikel werden die Wörterfile,module undscript angezeigt. Praktisch gibt es keinen großen Unterschied zwischen ihnen. Es gibt jedoch geringfügige Bedeutungsunterschiede, die den Zweck eines Codeteils betonen:

  1. File: Normalerweise ist eine Python-Datei eine beliebige Datei, die Code enthält. Die meisten Python-Dateien haben die Erweiterung.py.

  2. Script: Ein Python-Skript ist eine Datei, die Sie über die Befehlszeile ausführen möchten, um eine Aufgabe auszuführen.

  3. Module: Ein Python-Modul ist eine Datei, die Sie aus einem anderen Modul oder Skript oder aus dem interaktiven Interpreter importieren möchten. Weitere Informationen zu Modulen finden Sie inPython documentation.

Diese Unterscheidung wird auch inHow to Run Your Python Scripts diskutiert.

Ausführen über die Befehlszeile

Bei diesem Ansatz möchten Sie Ihr Python-Skript über die Befehlszeile ausführen.

Wenn Sie ein Skript ausführen, können Sie den Code, den der Python-Interpreter ausführt, nicht interaktiv definieren. Die Details, wie Sie Python über Ihre Befehlszeile ausführen können, sind für den Zweck dieses Artikels nicht so wichtig. Sie können jedoch das folgende Feld erweitern, um mehr über die Unterschiede zwischen der Befehlszeile unter Windows, Linux und macOS zu erfahren.

Jetzt sollten Sie das Skriptexecution_methods.pyüber die Befehlszeile ausführen, wie unten gezeigt:

$ python3 execution_methods.py
This is my file to test Python's execution methods.
The variable __name__ tells me which context this file is running in.
The value of __name__ is: '__main__'

In diesem Beispiel sehen Sie, dass__name__ den Wert'__main__' hat, wobei die Anführungszeichen (') angeben, dass der Wert den Zeichenfolgentyp hat.

Denken Sie daran, dass es in Python keinen Unterschied zwischen Zeichenfolgen gibt, die mit einfachen Anführungszeichen (') und doppelten Anführungszeichen (") definiert sind. Weitere Informationen zum Definieren von Zeichenfolgen inBasic Data Types in Python finden Sie hier.

Sie finden eine identische Ausgabe, wenn Sieshebang line in Ihr Skript aufnehmen und direkt (./execution_methods.py) ausführen oder die Magie von%runin IPython- oder Jupyter-Notizbüchern verwenden.

Möglicherweise werden Python-Skripte auch in Paketen ausgeführt, indem Sie dem Befehl das Argument-mhinzufügen. In den meisten Fällen wird dies empfohlen, wenn Siepip:python3 -m pip install package_name verwenden.

Durch Hinzufügen des Arguments-m wird der Code im Modul__main__.py eines Pakets ausgeführt. Weitere Informationen zur Datei__main__.pyfinden Sie inHow to Publish an Open-Source Python Package to PyPI.

In allen drei Fällen hat__name__ denselben Wert: die Zeichenfolge'__main__'.

Technical detail: In der Python-Dokumentation wird speziell definiert, wann__name__ den Wert'__main__' haben soll:

__name__ eines Moduls wird beim Lesen von Standardeingaben, einem Skript oder einer interaktiven Eingabeaufforderung auf'__main__' gesetzt. (https://docs.python.org/3/library/main.html [Quelle])

__name__ wird zusammen mit den Attributen__doc__,__package__ und anderen Attributen im globalen Namespace des Moduls gespeichert. Weitere Informationen zu diesen Attributen finden Sie inPython Data Model documentation und speziell für Module und Pakete inPython Import documentation.

Importieren in ein Modul oder den interaktiven Interpreter

Schauen wir uns nun die zweite Möglichkeit an, wie der Python-Interpreter Ihren Code ausführt: Importe. Wenn Sie ein Modul oder Skript entwickeln, möchten Sie höchstwahrscheinlich Module nutzen, die bereits von einer anderen Person erstellt wurden. Dies können Sie mit dem Schlüsselwortimporttun.

Während des Importvorgangs führt Python die im angegebenen Modul definierten Anweisungen aus (jedoch nur diefirst-Zeit, zu der Sie ein Modul importieren). Um die Ergebnisse des Imports Ihrerexecution_methods.py-Datei zu demonstrieren, starten Sie den interaktiven Python-Interpreter und importieren Sie dann Ihreexecution_methods.py-Datei:

>>>

>>> import execution_methods
This is my file to test Python's execution methods.
The variable __name__ tells me which context this file is running in.
The value of __name__ is: 'execution_methods'

In dieser Code-Ausgabe sehen Sie, dass der Python-Interpreter die drei Aufrufe vonprint() ausführt. Die ersten beiden Ausgabezeilen sind genau die gleichen wie bei der Ausführung der Datei als Skript in der Befehlszeile, da in keiner der beiden ersten Zeilen Variablen vorhanden sind. Es gibt jedoch einen Unterschied in der Ausgabe von den drittenprint().

Wenn der Python-Interpreter Code importiert, wird der Wert von__name__ so festgelegt, dass er dem Namen des zu importierenden Moduls entspricht. Sie können dies in der dritten Ausgabezeile oben sehen. __name__ hat den Wert'execution_methods'. Dies ist der Name der.py-Datei, aus der Python importiert.

Beachten Sie, dass keine Ausgabe erfolgt, wenn Sieimport des Moduls erneut ausführen, ohne Python zu beenden.

Note: Weitere Informationen zum Importieren in Python finden Sie unterofficial documentation sowieAbsolute vs Relative Imports in Python.

Best Practices für Python-Hauptfunktionen

Nachdem Sie nun die Unterschiede im Umgang von Python mit den verschiedenen Ausführungsmodi sehen können, ist es hilfreich, einige bewährte Methoden zu kennen. Diese gelten immer dann, wenn Sie Code schreiben möchten, den Sie als Skriptand-Import in ein anderes Modul oder eine interaktive Sitzung ausführen können.

Sie lernen vier bewährte Methoden kennen, um sicherzustellen, dass Ihr Code einem doppelten Zweck dient:

  1. Fügen Sie den meisten Code in eine Funktion oder Klasse ein.

  2. Verwenden Sie__name__, um die Ausführung Ihres Codes zu steuern.

  3. Erstellen Sie eine Funktion namensmain(), die den Code enthält, den Sie ausführen möchten.

  4. Rufen Sie andere Funktionen vonmain() auf.

Fügen Sie den meisten Code in eine Funktion oder Klasse ein

Denken Sie daran, dass der Python-Interpreter beim Importieren des Moduls den gesamten Code in einem Modul ausführt. Manchmal hat der von Ihnen geschriebene Code Nebenwirkungen, die der Benutzer steuern soll, z.

  • Ausführen einer Berechnung, die lange dauert

  • Schreiben in eine Datei auf der Festplatte

  • Drucken von Informationen, die das Terminal des Benutzers überladen würden

In diesen Fällen möchten Sie, dass der Benutzer das Auslösen der Ausführung dieses Codes steuert, anstatt den Python-Interpreter den Code ausführen zu lassen, wenn er Ihr Modul importiert.

Daher ist die beste Vorgehensweiseinclude most code inside a function or a class. Dies liegt daran, dass der Python-Interpreter, wenn er auf die Schlüsselwörterdef oderclass stößt, diese Definitionen nur zur späteren Verwendung speichert und sie erst ausführt, wenn Sie es ihm mitteilen.

Speichern Sie den folgenden Code in einer Datei mit dem Namenbest_practices.py, um diese Idee zu demonstrieren:

 1 from time import sleep
 2
 3 print("This is my file to demonstrate best practices.")
 4
 5 def process_data(data):
 6     print("Beginning data processing...")
 7     modified_data = data + " that has been modified"
 8     sleep(3)
 9     print("Data processing finished.")
10     return modified_data

In diesem Code importieren Sie zuerstsleep() austime module.

sleep() hält den Interpreter für so viele Sekunden an, wie Sie als Argument angeben, und erzeugt eine Funktion, deren Ausführung für dieses Beispiel lange dauert. Als Nächstes verwenden Sieprint(), um einen Satz zu drucken, der den Zweck dieses Codes beschreibt.

Dann definieren Sie eine Funktion namensprocess_data(), die fünf Dinge tut:

  1. Druckt eine Ausgabe, um dem Benutzer mitzuteilen, dass die Datenverarbeitung beginnt

  2. Ändert die Eingabedaten

  3. Unterbricht die Ausführung für drei Sekunden mitsleep()

  4. Druckt eine Ausgabe, um dem Benutzer mitzuteilen, dass die Verarbeitung abgeschlossen ist

  5. Gibt die geänderten Daten zurück

Führen Sie die Best Practices-Datei in der Befehlszeile aus

Was passiert nun, wenn Sie diese Datei als Skript in der Befehlszeile ausführen?

Der Python-Interpreter führt die Zeilenfrom time import sleep undprint() aus, die außerhalb der Funktionsdefinition liegen, und erstellt dann die Definition der Funktion mit dem Namenprocess_data(). Dann wird das Skript beendet, ohne weitere Schritte auszuführen, da das Skript keinen Code enthält, derprocess_data() ausführt.

Der folgende Codeblock zeigt das Ergebnis der Ausführung dieser Datei als Skript:

$ python3 best_practices.py
This is my file to demonstrate best practices.

Die Ausgabe, die wir hier sehen können, ist das Ergebnis der erstenprint(). Beachten Sie, dass beim Importieren austime und Definieren vonprocess_data() keine Ausgabe erfolgt. Insbesondere werden die Ausgaben der Aufrufe vonprint(), die innerhalb der Definition vonprocess_data() liegen, nicht gedruckt!

Importieren Sie die Best Practices-Datei in ein anderes Modul oder den interaktiven Interpreter

Wenn Sie diese Datei in eine interaktive Sitzung (oder ein anderes Modul) importieren, führt der Python-Interpreter genau die gleichen Schritte aus wie beim Ausführen einer Datei als Skript.

Sobald der Python-Interpreter die Datei importiert hat, können Sie alle Variablen, Klassen oder Funktionen verwenden, die in dem von Ihnen importierten Modul definiert sind. Um dies zu demonstrieren, verwenden wir den interaktiven Python-Interpreter. Starten Sie den interaktiven Interpreter und geben Sieimport best_practices ein:

>>>

>>> import best_practices
This is my file to demonstrate best practices.

Die einzige Ausgabe beim Importieren derbest_practices.py-Datei stammt aus dem erstenprint()-Aufruf, der außerhalb vonprocess_data() definiert wurde. Beim Importieren austime und Definieren vonprocess_data() wird keine Ausgabe erzeugt, genau wie beim Ausführen des Codes über die Befehlszeile.

Verwenden Sieif __name__ == "main", um die Ausführung Ihres Codes zu steuern

Was ist, wennprocess_data() ausgeführt werden soll, wenn Sie das Skript über die Befehlszeile ausführen, nicht jedoch, wenn der Python-Interpreter die Datei importiert?

Sie könnenuse the if __name__ == "main" idiom to determine the execution context undprocess_data() nur dann bedingt ausführen, wenn__name__ gleich"__main__" ist. Fügen Sie den folgenden Code am Ende Ihrerbest_practices.py-Datei hinzu:

11 if __name__ == "__main__":
12     data = "My data read from the Web"
13     print(data)
14     modified_data = process_data(data)
15     print(modified_data)

In diesem Code haben Sie eine bedingte Anweisung hinzugefügt, die den Wert von__name__ überprüft. Diese Bedingung wird zuTrue ausgewertet, wenn__name__ gleich der Zeichenfolge"__main__" ist. Denken Sie daran, dass der spezielle Wert von"__main__" für die Variable__name__ bedeutet, dass der Python-Interpreter Ihr Skript ausführt und nicht importiert.

Innerhalb des bedingten Blocks haben Sie vier Codezeilen hinzugefügt (Zeilen 12, 13, 14 und 15):

  • Lines 12 and 13: Sie erstellen eine Variabledata, in der die aus dem Web erfassten Daten gespeichert und gedruckt werden.

  • Line 14: Sie verarbeiten die Daten.

  • Line 15: Sie drucken die geänderten Daten.

Führen Sie nun das Skriptbest_practices.pyüber die Befehlszeile aus, um zu sehen, wie sich die Ausgabe ändert:

$ python3 best_practices.py
This is my file to demonstrate best practices.
My data read from the Web
Beginning data processing...
Data processing finished.
My data read from the Web that has been modified

Zunächst zeigt die Ausgabe das Ergebnis des Aufrufsprint() außerhalb vonprocess_data().

Danach wird der Wert vondata gedruckt. Dies geschah, weil die Variable__name__ den Wert"__main__" hat, wenn der Python-Interpreter die Datei als Skript ausführt, sodass die bedingte Anweisung zuTrue ausgewertet wird.

Als Nächstes hat Ihr Skriptprocess_data() aufgerufen unddata zur Änderung übergeben. Wennprocess_data() ausgeführt wird, werden einige Statusmeldungen an die Ausgabe gedruckt. Schließlich wird der Wert vonmodified_data gedruckt.

Jetzt sollten Sie überprüfen, was passiert, wenn Sie diebest_practices.py-Datei vom interaktiven Interpreter (oder einem anderen Modul) importieren. Das folgende Beispiel zeigt diese Situation:

>>>

>>> import best_practices
This is my file to demonstrate best practices.

Beachten Sie, dass Sie dasselbe Verhalten wie vor dem Hinzufügen der bedingten Anweisung am Ende der Datei erhalten! Dies liegt daran, dass die Variable__name__ den Wert"best_practices" hatte, sodass Python den Code innerhalb des Blocks, einschließlichprocess_data(), nicht ausführte, da die bedingte Anweisung mitFalse ausgewertet wurde.

Erstellen Sie eine Funktion namens main (), um den Code zu enthalten, den Sie ausführen möchten

Jetzt können Sie Python-Code schreiben, der über die Befehlszeile als Skript ausgeführt und ohne unerwünschte Nebenwirkungen importiert werden kann. Als Nächstes lernen Sie, wie Sie Ihren Code schreiben, damit andere Python-Programmierer leicht verstehen, was Sie meinen.

Viele Sprachen, wie C, C +, Java und einige andere, definieren eine spezielle Funktion, die als "+ main ()" bezeichnet werden muss und die das Betriebssystem automatisch ausführt, wenn es das kompilierte Programm ausführt. Diese Funktion wird oft alsentry point bezeichnet, da hier die Ausführung in das Programm eingeht.

Im Gegensatz dazu verfügt Python nicht über eine spezielle Funktion, die als Einstiegspunkt für ein Skript dient. Sie können der Einstiegspunktfunktion in einem Python-Skript tatsächlich einen beliebigen Namen geben!

Obwohl Python einer Funktion mit dem Namenmain() keine Bedeutung zuweist, ist die beste Vorgehensweise sowiesoname the entry point function main(). Auf diese Weise wissen alle anderen Programmierer, die Ihr Skript lesen, sofort, dass diese Funktion der Ausgangspunkt des Codes ist, der die Hauptaufgabe des Skripts erfüllt.

Außerdem solltemain() jeden Code enthalten, den Sie ausführen möchten, wenn der Python-Interpreter die Datei ausführt. Dies ist besser, als den Code direkt in den bedingten Block einzufügen, da ein Benutzer "main ()" wiederverwenden kann, wenn er Ihr Modul importiert.

Ändern Sie die Dateibest_practices.pyo, dass sie wie folgt aussieht:

 1 from time import sleep
 2
 3 print("This is my file to demonstrate best practices.")
 4
 5 def process_data(data):
 6     print("Beginning data processing...")
 7     modified_data = data + " that has been modified"
 8     sleep(3)
 9     print("Data processing finished.")
10     return modified_data
11
12 def main():
13     data = "My data read from the Web"
14     print(data)
15     modified_data = process_data(data)
16     print(modified_data)
17
18 if __name__ == "__main__":
19     main()

In diesem Beispiel haben Sie die Definition vonmain() hinzugefügt, die den Code enthält, der sich zuvor im bedingten Block befand. Dann haben Sie den bedingten Block so geändert, dass ermain() ausführt. Wenn Sie diesen Code als Skript ausführen oder importieren, erhalten Sie dieselbe Ausgabe wie im vorherigen Abschnitt.

Andere Funktionen aufrufen Von main ()

Eine andere gängige Praxis in Python isthave main() execute other functions, anstatt den Code zum Erfüllen von Aufgaben inmain() aufzunehmen. Dies ist besonders nützlich, wenn Sie Ihre Gesamtaufgabe aus mehreren kleineren Unteraufgaben zusammenstellen können, die unabhängig voneinander ausgeführt werden können.

Beispielsweise haben Sie möglicherweise ein Skript, das Folgendes ausführt:

  1. Liest eine Datendatei aus einer Quelle, die eine Datenbank, eine Datei auf der Festplatte oder eine Web-API sein kann

  2. Verarbeitet die Daten

  3. Schreibt die verarbeiteten Daten an einen anderen Speicherort

Wenn Sie jede dieser Unteraufgaben in separaten Funktionen implementieren, können Sie (oder ein anderer Benutzer) einige der Schritte leicht wiederverwenden und die nicht gewünschten ignorieren. Dann können Sie einen Standardworkflow inmain() erstellen und das Beste aus beiden Welten genießen.

Ob Sie diese Praxis auf Ihren Code anwenden, ist eine Entscheidung von Ihrer Seite. Die Aufteilung der Arbeit in mehrere Funktionen erleichtert die Wiederverwendung, erhöht jedoch die Schwierigkeit für andere Personen, die versuchen, Ihren Code zu interpretieren, da sie mehrere Sprünge im Programmablauf ausführen müssen.

Ändern Sie die Dateibest_practices.pyo, dass sie wie folgt aussieht:

 1 from time import sleep
 2
 3 print("This is my file to demonstrate best practices.")
 4
 5 def process_data(data):
 6     print("Beginning data processing...")
 7     modified_data = data + " that has been modified"
 8     sleep(3)
 9     print("Data processing finished.")
10     return modified_data
11
12 def read_data_from_web():
13     print("Reading data from the Web")
14     data = "Data from the web"
15     return data
16
17 def write_data_to_database(data):
18     print("Writing data to a database")
19     print(data)
20
21 def main():
22     data = read_data_from_web()
23     modified_data = process_data(data)
24     write_data_to_database(modified_data)
25
26 if __name__ == "__main__":
27     main()

In diesem Beispielcode haben die ersten 10 Zeilen der Datei denselben Inhalt wie zuvor. Die zweite Funktionsdefinition in Zeile 12 erstellt und gibt einige Beispieldaten zurück, und die dritte Funktionsdefinition in Zeile 17 simuliert das Schreiben der geänderten Daten in eine Datenbank.

In Zeile 21 wirdmain() definiert. In diesem Beispiel haben Siemain() so geändert, dass die Funktionen zum Lesen, Verarbeiten und Schreiben von Daten nacheinander aufgerufen werden.

Zunächst wirddata ausread_data_from_web() erstellt. Diesesdata wird anprocess_data() übergeben, dasmodified_data zurückgibt. Schließlich wirdmodified_data anwrite_data_to_database() übergeben.

Die letzten beiden Zeilen des Skripts sind der bedingte Block, der__name__ überprüft undmain() ausführt, wenn die AnweisungifTrue lautet.

Jetzt können Sie die gesamte Verarbeitungspipeline über die Befehlszeile ausführen, wie unten gezeigt:

$ python3 best_practices.py
This is my file to demonstrate best practices.
Reading data from the Web
Beginning data processing...
Data processing finished.
Writing processed data to a database
Data from the web that has been modified

In der Ausgabe dieser Ausführung sehen Sie, dass der Python-Interpretermain() ausgeführt hat, derread_data_from_web(),process_data() undwrite_data_to_database() ausgeführt hat. Sie können jedoch auch die Dateibest_practices.pyimportieren undprocess_data() für eine andere Eingabedatenquelle wiederverwenden, wie unten gezeigt:

>>>

>>> import best_practices as bp
This is my file to demonstrate best practices.
>>> data = "Data from a file"
>>> modified_data = bp.process_data(data)
Beginning data processing...
Data processing finished.
>>> bp.write_data_to_database(modified_data)
Writing processed data to a database
Data from a file that has been modified

In diesem Beispiel haben Siebest_practices importiert und den Namen für diesen Code aufbp gekürzt.

Der Importvorgang hat dazu geführt, dass der Python-Interpreter alle Codezeilen in der Dateibest_practices.pyausgeführt hat. In der Ausgabe wird daher die Zeile angezeigt, in der der Zweck der Datei erläutert wird.

Anschließend haben Sie Daten aus einer Datei indata gespeichert, anstatt die Daten aus dem Web zu lesen. Anschließend haben Sieprocess_data()+`and `+write_data_to_database() aus der Dateibest_practices.py wiederverwendet. In diesem Fall haben Sie die Wiederverwendung Ihres Codes genutzt, anstatt die gesamte Logik inmain() zu definieren.

Zusammenfassung der Best Practices für die Python-Hauptfunktion

Hier sind vier wichtige Best Practices fürmain() in Python, die Sie gerade gesehen haben:

  1. Fügen Sie Code in eine Funktion oder Klasse ein, dessen Ausführung lange dauert oder der andere Auswirkungen auf den Computer hat, damit Sie genau steuern können, wann dieser Code ausgeführt wird.

  2. Verwenden Sie die verschiedenen Werte von__name__, um den Kontext zu bestimmen und das Verhalten Ihres Codes mit einer bedingten Anweisung zu ändern.

  3. Sie sollten Ihre Einstiegspunktfunktionmain() benennen, um die Absicht der Funktion zu kommunizieren, obwohl Python einer Funktion mit dem Namenmain() keine besondere Bedeutung zuweist.

  4. Wenn Sie Funktionen aus Ihrem Code wiederverwenden möchten, definieren Sie die Logik in Funktionen außerhalb vonmain() und rufen Sie diese Funktionen innerhalb vonmain() auf.

Fazit

Herzliche Glückwünsche! Sie wissen jetzt, wie Sie die Funktionen von Pythonmain()erstellen.

Sie haben Folgendes gelernt:

  • Die Kenntnis des Werts der Variablen__name__ ist wichtig, um Code zu schreiben, der dem doppelten Zweck eines ausführbaren Skripts und eines importierbaren Moduls dient.

  • __name__ nimmt unterschiedliche Werte an, je nachdem, wie Sie Ihre Python-Datei ausgeführt haben. __name__ ist gleich:

    • "__main__", wenn die Datei über die Befehlszeile oder mitpython -m ausgeführt wird (um die__main__.py-Datei eines Pakets auszuführen)

    • Der Name des Moduls, wenn das Modul importiert wird

  • Python-Programmierer haben eine Reihe bewährter Methoden entwickelt, die Sie verwenden können, wenn Sie wiederverwendbaren Code entwickeln möchten.

Jetzt können Sie den fantastischen Funktionscode von Pythonmain()chreiben!