Python3 Fonction exec

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


Description

execExécute des instructions Python stockées dans une chaîne ou un fichier. Par rapport àeval,exec, il peut exécuter du code Python plus complexe.

Syntaxe

Voici la syntaxe de exec :

exec(object[, globals[, locals]])

Parameters

  • object : Paramètre obligatoire, représentant le code Python à spécifier. Il doit être une chaîne de caractères ou un objet code. Si object est une chaîne, la chaîne est d'abord analysée en un ensemble d'instructions Python, puis exécutée (sauf si une erreur de syntaxe se produit). Si object est un objet code, il est simplement exécuté.
  • globals : paramètre facultatif, représentant l'espace de noms global (stocke les variables globales). S'il est fourni, il doit être un objet dictionnaire.
  • locals : paramètre facultatif, représentant l'espace de noms local actuel (stocke les variables locales). S'il est fourni, il peut être n'importe quel objet de mappage. Si ce paramètre est ignoré, il prendra la même valeur que globals.

Valeur de retour

La valeur de retour de exec est toujours None.


Exemples

Ce qui suit montre des exemples d'utilisation de exec :

Exemple 1

>>>exec('print("Hello World")') Hello World # Chaîne d'instruction sur une seule ligne >>> exec("print ('example.com')") example.com # Chaîne d'instruction multiligne >>> exec ("""for i in range(5): ... print ("iter time: %d" % i) ... """) iter time: 0 iter time: 1 iter time: 2 iter time: 3 iter time: 4

Exemple 2

x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {'x': 1, 'y': 2}) exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4}) func()

Sortie :

60
33
34

Valeur de retour de exec

En Python,execla fonction est utilisée pour exécuter du code dans une chaîne, mais elle ne renvoie aucune valeur. Si vous voulez obtenir la valeur de retour après avoir exécuté le code, vous pouvez utiliserevalcomme fonction ouexeccombiné aveclocals()ouglobals()pour obtenir la valeur de la variable.

Veuillez noter que l'utilisation deevaletexecexige de la prudence, en particulier lorsque le code exécuté provient d'une source non fiable, car il peut y avoir des risques de sécurité.

Utilisezevalpour obtenir la valeur de retour :

Exemple

code = '2 + 2'
result = eval(code)
print(result)

Dans cet exemple,evalexécute la chaîne'2 + 2'et renvoie le résultat4。

La sortie de l'exécution du code ci-dessus est :

4

En utilisantexeccombiné aveclocals()pour obtenir la valeur de retour :

Exemple

code = 'result = 2 + 2'
local_vars = {}
exec(code, globals(), local_vars)
result = local_vars['result']
print(result)

Dans cet exemple,execexécute la chaîne'result = 2 + 2', et stocke le résultat danslocal_varsdans la clé'result'du dictionnaire.

La sortie de l'exécution du code ci-dessus est :

4

En utilisantexeccombiné avecglobals()pour obtenir la valeur de retour :

Exemple

code = 'result = 2 + 2'
global_vars = {}
exec(code, global_vars)
result = global_vars['result']
print(result)

Dans cet exemple,execexécute la chaîne'result = 2 + 2', et stocke le résultat dansglobal_varsdans la clé'result'du dictionnaire.

La sortie de l'exécution du code ci-dessus est :

4

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

Autres extensions