Bonjour,

j'essaye de créer une fonction du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
def spam(x):
    y=x*x
    print y
à partir des 3 chaines de caractères
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
"def spam(x):"
"   y=x*x"
"   print y"
Mais ça ne marche pas...
Voici ce que donne un essai qui me paraissait logique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
>>>exec("def spam(x):y=x*x\nprint y")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 2, in <module>
NameError: name 'y' is not defined
J'ai pensé à un problème d'indentation, mais ce n'est guère mieux :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
>>>exec("def spam(x):    y=x*x\n    print y")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 2
    print y
    ^
Je suis bien allé voir la FAQ, mais rien sur les fonctions de plusieurs lignes...