当我尝试运行我的代码时,一切都会执行但是after函数会立即调用update,尽管我输入了5秒的延迟。除此之外,gui没有显示任何图形。
onConnectionFailed
任何有关解决此问题的帮助或只是一般的python技巧都将非常感激。
答案 0 :(得分:1)
考虑这行代码:
main.after(5000, functools.partial(update, a)(canvas))
这与此完全相同:
func = functools.partial(update, a)
result = func(canvas)
main.after(5000, result)
为了使after
完成其工作,您必须为要调用的函数提供引用。在您的代码中,您实际上是立即调用它,然后将结果传递给after
。
由于您可以提供after
的位置参数,这些参数将传递给您的命令,您可以像这样重写after
:
main.after(5000, functools.partial(update, a), canvas)
尽管如此,我不太明白为什么你认为自己需要functools.partial
。你应该可以将它压缩到这个:
main.after(5000, update, a, canvas)