Fonction compile() Python
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.
- Type : chaîne
- Description : Le nom de la source du code, généralement défini sur le nom du fichier source.
- 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
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 :
- mode='eval' est utilisé pour une seule expression.
- 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)
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.
Fonctions intégrées de Python3
Autres extensions