besoin d'une petite explication de la fonction "eval"
Bonjour,
je rencontre actuellement un petit probleme avec la fonction "eval", afin de vous expliquer au mieux voila deux codes minimaliste representant mon probleme:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # -*- coding: cp1252 -*-
from Tkinter import *
def fillTheListBox():
listARemplire = "listbox"
eval(listARemplire).insert(END, "bla bla")
#listbox.insert(END, "bla bla")
Fenetre_02 = Tk()
listbox = Listbox(Fenetre_02, height=15, width=20, font ="Arial 10 bold")
listbox.pack(side = LEFT, padx = 0, pady = 0)
fillTheListBox()
Fenetre_02.mainloop() |
jusque là ca fonctionne (je pense faire une utiliation correcte de "eval")
oui mais voila , l'exemple suivant lui ne foncitonne pas et je ne parviens pas a comprendre pourquoi :
Code:
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 26 27 28 29 30 31
| # -*- coding: cp1252 -*-
from Tkinter import *
def TestDansUneFonction():
def fillTheListBox():
listARemplire = "listbox"
eval(listARemplire).insert(END, "bla bla")
Fenetre_02 = Tk()
listbox = Listbox(Fenetre_02, height=15, width=20, font ="Arial 10 bold")
listbox.pack(side = LEFT, padx = 0, pady = 0)
fillTheListBox()
Fenetre_02.mainloop()
Fenetre_01 = Tk()
Button = Button(Fenetre_01, width=20, text ='Open Fenetre_02', command = TestDansUneFonction)
Button.pack(side = TOP, padx = 2, pady = 1)
Fenetre_01.mainloop() |
j'obtiens:
Code:
1 2 3 4 5 6 7 8 9 10
| Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1437, in __call__
return self.func(*args)
File "/home/bibi/Downloads/test.py", line 20, in TestDansUneFonction
fillTheListBox()
File "/home/bibi/Downloads/test.py", line 10, in fillTheListBox
eval(listARemplire).insert(END, "bla bla")
File "<string>", line 1, in <module>
NameError: name 'listbox' is not defined |
je me tourne donc vers vous dans l'espoir de trouver quelqu'un qui puisse m'expliquer où se trouve mon erreur.
d'avance merci pour votre aide,
Daan.