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
。它还提供 x
和 y
参数,这些参数是 onclick()
处理程序所必需的,无论是否需要。
我写的代码应该等到用户点击海龟然后它应该去 (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
。它还提供 x
和 y
参数,这些参数是 onclick()
处理程序所必需的,无论是否需要。