Bonjour a tous,

Voici un probleme épineux que je n'arrive pas a résoudre,
Je définis une fonction contenant une autre fonction comme suis :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
def BigFunction(Param1,Param2):
     def SmallFunction():
          print(Param1)
Voila donc ma belle fonction,et voici le probleme si j'écris cela

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
def BigFunction(Param1,Param2):
     def SmallFunction():
          print(Param1)
 
     SmallFunction()
 
BigFunction(45,"yoyo")
Ca fonctionne et j'ai comme résultat 45.

Maintenant si je crée une fenetre Tk() en amont, et que je crée un Canvas appelé TheCan, et si j'écris ceci :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
def BigFunction(Param1,Param2):
     def SmallFunction(event):
          print(Param1)
 
     TheCan.bind('<Button-1>',SmallFunction)
 
BigFunction(45,"yoyo")
Eh beh ce code ne fonctionne pas, voici l'erreur générée

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
"UnboundLocalError: local variable 'Param1' referenced before assignment"
Si j'ai bien compris, cela signifie que Param1 n'existe tout simplement pas !
Mais comment est-ce possible étant donné qu'elle est censée etre globale a toute la fonction BigFunction.Une âme charitable voudrait-elle bien m'aider?

Merci d'avance.