Lors de la définition d'une fonction en Python, vous utiliseriez normalement l'instruction def
et l'écrivez comme suit.
python
def foo(x):
print(x)
Cette instruction de définition de fonction crée un objet fonction et l'assigne au nom «foo» dans l'espace de noms global.
Lorsque le script Python qui définit cette fonction est donné sous forme de texte de l'extérieur, le code suivant réalise le même traitement que la définition de fonction ci-dessus.
python
func = """def foo(x):
print(x)
"""
exec(func, globals())
La fonction intégrée ʻexecexécute le code Python (chaîne ou objet Code) du premier argument dans l'espace de noms du deuxième argument. Dans cet exemple, le deuxième argument,
globals (), passe l'espace de noms global pour ce module, donc un objet fonction y est créé avec le nom
foo. Autrement dit, «foo» est créé comme vous le définiriez normalement dans une instruction «def». En fait, lorsque vous exécutez
foo, vous pouvez voir qu'il peut être utilisé de la même manière qu'il est normalement défini dans l'instruction
def`.
python
>>> foo("hello")
hello
Recommended Posts