如何从作为 Tkinter 回调执行的函数中获取返回的对象?
import Tkinter as Tk
from functools import partial
def square(x):
return x*x
root = Tk.Tk()
var = Tk.IntVar(root, value=0) #the variable the gets passed to the class call
menu = Tk.OptionMenu(root, var, *[0,1,2,3,4,5]) #a drop-down list to choose a value for the variable
menu.pack()
button = Tk.Button(root, text='click', command = partial(square,var.get())) #a button that calls the class
button.pack()
root.mainloop()
显然这是一个简化的例子。实际上,按钮调用的函数将返回对象,我希望将其附加到对象列表中,这些对象将保存在主要 Python 命名空间中以进行进一步操作。
无论如何,在这里,用户可以使用 GUI 为函数选择一个参数,然后按下一个按钮来执行该函数。然而,函数的返回值似乎注定要丢失在以太中,因为回调不会接受返回。global
如果不使用丑陋的定义,这可以克服square(x)
吗?