Bonjour,

Quelqu'un pourrait m'expliquer ce comportement en Python 3 ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
>>> def testexec(value):
...     exec('newvalue = ' + str(value) + '+ 10')
...     print(locals()['newvalue'])
...     return locals()['newvalue']
... 
>>> print(testexec(5))
15
15
>>> def testexec(value):
...     exec('newvalue = ' + str(value) + '+ 10')
...     print(locals()['newvalue'])
...     return newvalue
... 
>>> print(testexec(5))
15
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 4, in testexec
NameError: global name 'newvalue' is not defined
Merci d'avance