Heim  >  Artikel  >  Backend-Entwicklung  >  Python-Funktion „compile()“-Funktion

Python-Funktion „compile()“-Funktion

巴扎黑
巴扎黑Original
2017-08-18 13:51:003241Durchsuche

compile(source, filename, mode[, flags[, dont_inherit]])

Chinesische Beschreibung: Quelle in Code oder AST-Objekt kompilieren. Codeobjekte können über die exec-Anweisung ausgeführt oder mit eval() ausgewertet werden.

Parameterquelle: Zeichenfolge oder AST-Objekt (Abstract Syntax Trees).

Parameter Dateiname: Codedateiname, übergeben Sie einen identifizierbaren Wert, wenn der Code nicht aus einer Datei gelesen wird.

Parametermodell: Gibt den Typ des kompilierten Codes an. Kann als „exec“, „eval“, „single“ angegeben werden.

Parameter flag und dont_inherit: Diese beiden Parameter werden noch nicht eingeführt, es handelt sich um optionale Parameter.

Version: Es ist anders in Python2.3, 2.6, 2.7 und 3.2. Bitte achten Sie darauf, dass es mit Python3 kompatibel ist.

Englische Anweisungen:

Kompilieren Sie die Quelle in einen Code oder ein AST-Objekt. Codeobjekte können durch eine exec-Anweisung ausgeführt oder durch einen Aufruf von eval() ausgewertet werden Informationen zum Arbeiten mit AST-Objekten finden Sie in der Dokumentation zum AST-Modul.

Das Dateinamenargument sollte die Datei angeben, aus der der Code gelesen wurde, wenn er nicht aus a gelesen wurde Datei ('< ;string>' wird häufig verwendet).

Das Modusargument gibt an, welche Art von Code kompiliert werden muss. Es kann „exec“ sein, wenn die Quelle aus einer Folge von Anweisungen besteht, „eval“, wenn es besteht aus einem einzelnen Ausdruck oder „single“, wenn es aus einer einzelnen interaktiven Anweisung besteht (im letzteren Fall werden Ausdrucksanweisungen, die etwas anderes als „None“ ergeben, gedruckt).

Die optionalen Argumente flags und dont_inherit steuert, welche zukünftigen Anweisungen (siehe PEP 236) die Kompilierung der Quelle beeinflussen. Wenn keines von beiden vorhanden ist (oder beide Null sind), wird der Code mit den zukünftigen Anweisungen kompiliert, die in dem Code wirksam sind, der das Flags-Argument aufruft gegeben ist und dont_inherit nicht (oder Null) ist, werden die durch das Flags-Argument angegebenen zukünftigen Anweisungen zusätzlich zu denen verwendet, die ohnehin verwendet würden. Wenn dont_inherit eine ganze Zahl ungleich Null ist, dann ist es das Flags-Argument – ​​die zukünftigen Anweisungen in der Tat werden rund um den Aufruf zum Kompilieren ignoriert.

Zukünftige Anweisungen werden durch Bits angegeben, die bitweise mit ODER verknüpft werden können, um mehrere Anweisungen anzugeben. Das zum Spezifizieren einer bestimmten Funktion erforderliche Bitfeld kann als Attribut „compiler_flag“ gefunden werden _Feature-Instanz im __future__-Modul.

Diese Funktion löst SyntaxError aus, wenn die kompilierte Quelle ungültig ist, und TypeError, wenn die Quelle Nullbytes enthält.

Hinweis beim Kompilieren einer Zeichenfolge mit mehrzeiligem Code Im „Single“- oder „Eval“-Modus muss die Eingabe durch mindestens ein Zeilenumbruchzeichen abgeschlossen werden. Dies soll die Erkennung unvollständiger und vollständiger Anweisungen im Codemodul erleichtern.

Geändert in Version 2.3: Die Flags und dont_inherit-Argumente wurden hinzugefügt.

Geändert in Version 2.6: Unterstützung für das Kompilieren von AST-Objekten.

Geändert in Version 2.7: Erlaubte Verwendung von Windows- und Mac-Neuzeilen. Auch die Eingabe im „exec“-Modus muss nicht mehr in einer neuen Zeile enden.

Codebeispiel:

Das obige ist der detaillierte Inhalt vonPython-Funktion „compile()“-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn