Bonjour,
Quelqu'un pourrait m'expliquer la différence de comportement entre ces deux codes :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
t="def add(a,b):\n\treturn a+b"
def truc(t):
    exec(t)
    print(add(8,9))
truc(t)
NameError : name 'add' is not defined

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
t="def add(a,b):\n\treturn a+b"
exec(t)
print(add(8,9))
17

Sachant que mon objectif serait un truc comme ca :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
t="def add(a,b):\n\treturn a+b"
 
def truc(t):
    exec(t)
 
truc(t)
print(add(8,9))
(mais qui fonctionnerait)

Merci d'avance.