Python compile ()

Die Methode compile () gibt ein Python-Codeobjekt aus der Quelle zurück (normale Zeichenfolge, Bytezeichenfolge oder AST-Objekt).

Die Syntax von compile()lautet:

 kompilieren (Quelle, Dateiname, Modus, Flags = 0, dont_inherit = False, Optimize = -1)

compile() Die Methode wird verwendet, wenn der Python-Code in Zeichenfolgenform vorliegt oder ein AST-Objekt ist und Sie ihn in ein Codeobjekt ändern möchten.

Das von der compile()Methode zurückgegebene Codeobjekt kann später mit folgenden Methoden aufgerufen werden: exec () und eval (), die dynamisch generierten Python-Code ausführen.

compile () Parameter

  • source - eine normale Zeichenfolge, eine Bytezeichenfolge oder ein AST-Objekt
  • filename- Datei, aus der der Code gelesen wurde. Wenn es nicht aus einer Datei gelesen wurde, können Sie selbst einen Namen vergeben
  • mode- Entweder execoder evaloder single.
    • eval - akzeptiert nur einen einzigen Ausdruck.
    • exec - Es kann einen Codeblock enthalten, der Python-Anweisungen, Klassen und Funktionen usw. enthält.
    • single - wenn es aus einer einzelnen interaktiven Anweisung besteht
  • flags(optional) und dont_inherit(optional) - steuert, welche zukünftigen Anweisungen die Kompilierung der Quelle beeinflussen. Standardwert: 0
  • optimize(optional) - Optimierungsstufe des Compilers. Standardwert -1.

Rückgabewert von compile ()

compile() Methode gibt ein Python-Code-Objekt zurück.

Beispiel: Wie funktioniert compile ()?

 codeInString = 'a = 5b=6sum=a+bprint("sum =",sum)' codeObejct = compile(codeInString, 'sumstring', 'exec') exec(codeObejct)

Ausgabe

 Summe = 11

Hier liegt die Quelle in normaler Zeichenfolgenform vor. Der Dateiname lautet sumstring. Der execModus ermöglicht später die Verwendung von exec()Methoden.

Die Methode compile () konvertiert die Zeichenfolge in ein Python-Codeobjekt. Das Codeobjekt wird dann mit der exec()Methode ausgeführt.

Interessante Beiträge...