附加到列表会覆盖它

时间:2015-12-08 05:26:39

标签: python list tkinter append overwrite

我正在制作一个包含会话时间的列表框但是当我尝试将列表框项目附加到列表时,它会覆盖其中的所有条目。为什么会这样?

from Tkinter import *
class Main(object):
        def __init__(self, root):
            self.f2=Frame(root)
            self.f2.grid()
            Label(self.f2, text="Sesion Date:").grid(row=3, column=0)
            self.e=Entry(self.f2)
            self.e.grid(row=3, column=1)
            Button(self.f2, text="Add Session", command=self.session).grid(row=4, columnspan=2)
            self.sessionbox=Listbox(self.f2)
            self.sessionbox.grid(row=5, columnspan=2)
        def session(self):
            if len(self.e.get()) == 0: 
                tkMessageBox.showinfo("Add Session", "Please type a session date\nbefore submitting")
            else:
                self.sessionlist=[]
                self.sessionlist.append("%s" % (self.e.get()))
                print self.sessionlist
                self.sessionbox.insert(0, "%s" % (self.e.get()))
                self.e.delete(0, END)

root=Tk()
app=Main(root)
root.mainloop()

1 个答案:

答案 0 :(得分:2)

每当您重新初始化列表时(self.sessionlist = [])...我认为您必须全局访问它。在外面初始化。