我在做什麼錯?我想「refreshB」按鈕來調用「更新」 DEF但我得到一個nameError代替類lambda回調NameError
class monitor():
def update(self):
print "Called"
mon = Tk()
mainFrame = Frame(mon)
mainFrame.grid(row=1, column=1)
optionFrame = Frame(mainFrame)
optionFrame.grid(row=1, column=1)
refreshB = ttk.Button(optionFrame, text='Refresh', command=lambda: update('self'))
refreshB.grid(row=1, column=1)
mon.mainloop()
monitor()
**NameError: global name 'update' is not defined**
我一個不是很熟悉的類,有沒有別的東西我應該補充?
如果上面的腳本是不是一個班的話,我會用:
refreshB = ttk.Button(optionFrame, text='Refresh', command=lambda: update)
這會工作得很好......
您正在將類構造視爲一個函數。他們不是一回事。當你調用一個類時,它不會執行類中的代碼。相反,它調用類中定義的__init__方法並返回該類的新實例。 –