turtle-graphics onclick() 立即调用函数

turtle-graphics onclick() immediately calls function

我写的代码应该等到用户点击海龟然后它应该去 (1000, 1000)。

import turtle

ras = turtle.Turtle()
win = turtle.Screen()

win.bgcolor("black")
ras.color("blue")
ras.onclick(ras.goto(1000,1000))

win.mainloop()

但它没有,它没有任何点击就立即关闭。

我认为称它为:

ras.onclick(lambda: ras.goto(1000,1000))

会起作用。它被调用的原因是,好吧,...你正在调用它!

当您在函数上下文之外执行 ras.goto(1000,1000) 时,它会调用方法

为此,您需要替换

ras.onclick(ras.goto(1000,1000))

与:

ras.onclick(lambda x, y: ras.goto(1000, 1000))

将函数 传递给 onclick(),而不是 调用 函数所产生的 None。它还提供 xy 参数,这些参数是 onclick() 处理程序所必需的,无论是否需要。