Fonction compile() Python

Python3 内置函数Fonctions intégrées de Python3


compile()C'est une fonction intégrée en Python utilisée pour compiler du code source en un objet code.

L'objet code compilé peut êtreexec()oueval()exécuté.compile()Il est principalement utilisé pour l'optimisation du code, l'exécution dynamique et la précompilation de code courant.

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


Syntaxe de base et paramètres

Format de syntaxe

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

Description du paramètre

  • Source du paramètre:
    • Type : chaîne de caractères ou objet AST
    • Description : Le code source à compiler.
  • Paramètre filename:
    • Type : chaîne
    • Description : Le nom de la source du code, généralement défini sur le nom du fichier source.
  • Paramètre mode:
    • Type : chaîne
    • Description : Mode de compilation,'exec'(bloc d'instructions),'eval'(expression),'single'(instruction unique).

Description de la fonction

  • Valeur de retour: Renvoie un objet code.

Exemples

Exemple 1 : Utilisation de base

Exemple

# Compiler l'expression
code = compile("1 + 2", "<string>", "eval")
result = eval(code)
print(result)  # Sortie : 3

# Compiler un bloc d'instructions
code = compile("print('Hello')", "<string>", "exec")
exec(code)  # Sortie : Hello

# Compiler du code multiligne
code = compile("""
x = 10
y = 20
result = x + y
"""
, "<string>", "exec")
exec(code)
print(result)  # Sortie : 30

Résultat de l'exécution :

3
Hello
30

Analyse du code :

  1. mode='eval' est utilisé pour une seule expression.
  2. mode='exec' est utilisé pour les blocs d'instructions.

Exemple 2 : Exécution dynamique de code

Exemple

# Code saisi par l'utilisateur
user_code = "for i in range(5): print(i, end=' ')"
code = compile(user_code, "<user>", "exec")
exec(code)  # Sortie : 0 1 2 3 4

# Utiliser compile pour précompiler pour de meilleures performances
import time
code_str = "sum(range(1000))"
compiled = compile(code_str, "<string>", "eval")

start = time.time()
for _ in range(10000):
    eval(compilé)
print(fAprès compilation : {time.time() - start:.4f} seconds)

Résultat de l'exécution :

compile() peut précompiler le code pour améliorer l'efficacité d'exécution.

compile()Il est très utile dans les scénarios de génération et d'exécution dynamiques de code.


Python3 内置函数Fonctions intégrées de Python3


Autres extensions