Pythons Äquivalent von "public static void main"

Was ist Pythons Äquivalent von "public static void main (String [] args) {…}"? Ich erinnere mich, dass ich es in der Vergangenheit benutzt habe und dann vergessen habe.

Was ich im Grunde versuche, mich zu erinnern, ist eine Funktion, die ich denke, enthalten einige Unterstriche (__) …

Danke

  • Wie finde ich die optimale Funktionseingabe ganzzahlig (X), um einer Zielausgabe (Y) am nächsten zu kommen?
  • Was ist eine gute Bibliothek, um Apache2-Konfigurationsdateien zu manipulieren?
  • XML-Serialisierungsbibliothek Interoperabilität zwischen Java und Python
  • Wie generiere ich eine Liste der angegebenen Länge in Java 8?
  • Fehler beim Ausführen von Pythontranscriber.py
  • Können Java und Python in der gleichen App koexistieren?
  • Gute Sprache, um einen Spielserver zu entwickeln?
  • Android Socket nicht an Laptop-Server anschließen - aber lokales Java-Programm kann
  • 5 Solutions collect form web for “Pythons Äquivalent von "public static void main"”

    #!/usr/bin/env python import sys def main(args): print args if __name__ == '__main__': main(sys.argv) 

    Bearbeiten : emulieren Sie eine void return.

     if __name__ == "__main__": ....do your thing 

    Dies ist eine häufig verwendete Idiom, aber es ist nicht gleichbedeutend mit Java's public static void main(String args[]) . Alle Python-Module führen von oben nach unten alle Anweisungen im Modulbereich aus. Für die meisten importierten Module sind diese Anweisungen in der Regel auf Klassen- und Methodendefinitionen beschränkt, die Werte im Namespace des Moduls einrichten, aber nicht den Code der Funktionen ausführen. Aber wenn du eine Aussage auf SPECIAL_CONSTANT = 42 wie SPECIAL_CONSTANT = 42 , dann wird dies sofort ausgeführt, wenn das Modul importiert oder eigenständig ausgeführt wird – keine Notwendigkeit für main() oder __main__ oder irgendetwas. Versuchen Sie, eine print an die Spitze eines einfachen Moduls zu setzen. Ob Sie dieses Modul importieren oder es selbst aus der Befehlszeile ausführen, die print wird immer ausgeführt.

    Was ist nett über diese idiom ist, dass es Ihnen erlaubt, einige einfache Tests oder Demo-Code direkt mit einer Bibliothek, die in der Regel von einem Modul von Ihrem Kunden geschrieben importiert wird eingebettet. Vielleicht so etwas wie dieses:

     # special_super_duper_module.py # this next statements will run, even though not in main() or set off # with "__name__ ==" tests or any such thing print "You are using special_super_duper_module.py, written by Felix the Cat" SPECIAL_CONSTANT = 42 def super_duper_function1(): pass def super_duper_function2(): pass if __name__ == "__main__": print "You are running special_super_duper_module.py interactively" assert super_duper_function1() == None, "expected None, got non-None result" assert super_duper_function2() == None, "expected None, got non-None result" # doctests or unittests could also go here, or just a simple demo 

    Wenn das Modul von einem Code importiert wird, der deine Super-Duper-Funktionen verwenden will, dann wird das kleine Banner an der Spitze gedruckt, aber der Code, der bedingt ist, if __name__ etc.... wird nicht laufen. Aber wenn Ihr Benutzer das Modul direkt mit dem python-Befehl ausführt, wird der eingebettete Test- oder Demo-Code ausgeführt.

    Im Gegensatz dazu ist die public static void main(String args[]) eine spezielle Methodensignatur, die der Java VM mitteilt, welche Methode, mit welcher Klasse sie beginnen soll. Python startet gerade an der Spitze des benannten Moduls und fängt an, von dort zu rennen. Deshalb musst du nur schreiben:

     print "Hello, World!" 

    In einem Modul alleine, um dein erstes Python-Programm zu schreiben.

    Die klassischen Versionen oben sind am häufigsten verwendet, aber für etwas umfassender, check out Guido van Rossums Blog-Post:

    Alle Sachen Pythonic: Python main () Funktionen ( siehe auch die Kommentare für mehr)

    Oh!

     if __name__ == '__main__': 
    Python ist die beste Programmiersprache der Welt.