Python compile() Funktion

Python3 内置函数Python3 integrierte Funktionen


compile()Es ist eine eingebaute Funktion in Python, die verwendet wird, um Quellcode in ein Codeobjekt zu kompilieren.

Das kompilierte Codeobjekt kannexec()odereval()ausgeführt werden.compile()Es wird hauptsächlich zur Codeoptimierung, dynamischen Ausführung und zum Vorkompilieren von häufig verwendetem Code eingesetzt.

Glossar: compile 意为"编译",将源代码转换为可执行代码。


Grundlegende Syntax und Parameter

Syntaxformat

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

Parameterbeschreibung

  • Parameterquelle:
    • Typ: string oder AST-Objekt
    • Beschreibung: Der zu kompilierende Quellcode.
  • Parameter filename:
    • Typ: String
    • Beschreibung: Der Name der Codequelle, normalerweise auf den Namen der Quelldatei gesetzt.
  • Parameter mode:
    • Typ: String
    • Beschreibung: Kompilierungsmodus,'exec'(Anweisungsblock),'eval'(Ausdruck),'single'(einzelne Anweisung).

Funktionsbeschreibung

  • Rückgabewert: Gibt ein Codeobjekt zurück.

Beispiele

Beispiel 1: Grundlegende Verwendung

Beispiel

# Ausdruck kompilieren
code = compile("1 + 2", "<string>", "eval")
result = eval(code)
print(result)  # Ausgabe: 3

# Anweisungsblock kompilieren
code = compile("print('Hello')", "<string>", "exec")
exec(code)  # Ausgabe: Hello

# Mehrzeiligen Code kompilieren
code = compile("""
x = 10
y = 20
result = x + y
"""
, "<string>", "exec")
exec(code)
print(result)  # Ausgabe: 30

Run result:

3
Hello
30

Codeanalyse:

  1. mode='eval' wird für einen einzelnen Ausdruck verwendet.
  2. mode='exec' wird für Anweisungsblöcke verwendet.

Beispiel 2: Dynamische Codeausführung

Beispiel

# Vom Benutzer eingegebener Code
user_code = "for i in range(5): print(i, end=' ')"
code = compile(user_code, "<user>", "exec")
exec(code)  # Ausgabe: 0 1 2 3 4

# Verwende compile, um für bessere Leistung vorzukompilieren
import time
code_str = "sum(range(1000))"
compiled = compile(code_str, "<string>", "eval")

start = time.time()
for _ in range(10000):
    eval(kompiliert)
print(fNach der Kompilierung: {time.time() - start:.4f} Sekunden)

Run result:

compile() kann Code vorkompilieren, um die Ausführungseffizienz zu verbessern.

compile()Es ist sehr nützlich in Szenarien mit dynamischer Codegenerierung und -ausführung.


Python3 内置函数Python3 integrierte Funktionen


Andere Erweiterungen