Maison >développement back-end >Tutoriel Python >Quelles sont les différences entre les fonctions « eval », « exec » et « compile » de Python ?
Python fournit trois outils puissants pour exécuter du code de manière dynamique : eval, exec et compile . Chacun sert un objectif spécifique et il est important de comprendre leurs différences.
Eval est utilisé pour évaluer une seule expression. Il prend une chaîne représentant l'expression et renvoie sa valeur. Par exemple :
a = 5 result = eval('a + 10') print(result) # Output: 15
Exec est utilisé pour exécuter un bloc de code. Il prend une chaîne représentant le code et renvoie Aucun. Par exemple :
my_code = """ for i in range(5): print(i) """ exec(my_code) # Output: # 0 # 1 # 2 # 3 # 4
Compile est utilisé pour compiler du code en bytecode, qui peut ensuite être exécuté par l'interpréteur. Il prend une chaîne représentant le code et un mode (« eval », « exec » ou « single »).
En mode « eval », compile compile une seule expression en bytecode qui renvoie la valeur de l'expression. En mode 'exec', il compile un bloc de code en bytecode qui renvoie Aucun. En mode « simple », il compile une seule instruction ou expression en bytecode qui imprime la représentation de la valeur de l'expression.
Par exemple :
bytecode = compile('a + 10', 'my_code', 'eval') result = eval(bytecode) print(result) # Output: 15 bytecode = compile(""" for i in range(5): print(i) """, 'my_code', 'exec') exec(bytecode) # Output: # 0 # 1 # 2 # 3 # 4
Function | What it does |
---|---|
eval | Evaluates a single expression |
exec | Executes a block of code |
compile | Compiles code into bytecode |
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!