Bonjour,
je suis confronté à un problème métaphysique de portée de variable...
Voici un petit test qui illustre mon propos :
Quand j'appuie sur 'a' je vois bien mon 'OK' devenir 'ok' et vice versa. Donc, la variable 'button' est visible depuis 'spam'.
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
20
21
22
23
24
25 def ti_test (): import Tkinter dialog = Tkinter.Tk() dialog.grid() button = Tkinter.Button( dialog,text='OK', command=dialog.quit ) button.grid() i = 123 # 'i' est bien défini au même niveau que 'button' def spam (): print 'spam' button['text'] = button['text'].swapcase() def eggs (): print 'eggs ',i i += 1 dialog.bind('a',lambda e : spam()) dialog.bind('z',lambda e : eggs()) dialog.mainloop() dialog.destroy() ti_test()
Mais quand j'appuis sur 'z', j'ai un exception qui me dit que 'i' n'est pas défini dans le contexte de 'eggs' !
Alors, pourquoi ces 2 poids et 2 mesures ?
Pendant que j'y suis : comment on "bind" la barre d'espace ?
Partager