在事件驱动程序的上下文中,从回调中“返回”值的概念没有意义。回调是事件的结果,因此无处可返回值。
根据一般经验,回调应始终调用函数,而不是使用
functools.partial或
lambda。两者在需要时很好用,但是如果您使用的是面向对象的编码风格,则它们通常是不必要的,并且会导致代码难以维护。
例如:
def compute(): value = var.get() result = square(value) list_of_results.append(result)button = Tk.Button(root, text='click', command = compute)...
如果您将应用程序创建为类,这将变得更加容易,并且可以避免使用全局变量:
class App(...): ... def compute(): ... result = self.square(self.var.get()) self.results.append(result)



