使用需要 onclick 事件参数的函数(python 乌龟)
Use a function that needs an argument for onclick event (python turtle)
我正在尝试 Turtle 的绘图工具,我希望能够更改画笔的颜色。如何将 onclick() 用于带有参数 'color' 的函数?
import turtle
red_color = turtle.Turtle()
red_color.color('red', 'red')
def switch_color(color):
brush.color(color)
def main():
red_color.onclick(switch_color, 1) # how do I choose the color I want it to change to
screen.mainloop()
main()
我的理解是你试图解决的问题是像 onclick()
这样的事件处理程序不接受任意参数,但你想传递一个参数。解决这个问题的典型方法是引入一个 lambda
表达式,但我更喜欢 partial()
:
from turtle import Screen, Turtle
from functools import partial
def switch_color(color, x, y): # x & y supplied by onclick event
brush.color(color)
screen = Screen()
brush = Turtle()
brush.color('red')
brush.onclick(partial(switch_color, 'green'))
screen.mainloop()
当你点击红色光标时,它会变成绿色。可能不是您想要的确切功能,而是一种将参数传递给事件处理程序的方法。
我正在尝试 Turtle 的绘图工具,我希望能够更改画笔的颜色。如何将 onclick() 用于带有参数 'color' 的函数?
import turtle
red_color = turtle.Turtle()
red_color.color('red', 'red')
def switch_color(color):
brush.color(color)
def main():
red_color.onclick(switch_color, 1) # how do I choose the color I want it to change to
screen.mainloop()
main()
我的理解是你试图解决的问题是像 onclick()
这样的事件处理程序不接受任意参数,但你想传递一个参数。解决这个问题的典型方法是引入一个 lambda
表达式,但我更喜欢 partial()
:
from turtle import Screen, Turtle
from functools import partial
def switch_color(color, x, y): # x & y supplied by onclick event
brush.color(color)
screen = Screen()
brush = Turtle()
brush.color('red')
brush.onclick(partial(switch_color, 'green'))
screen.mainloop()
当你点击红色光标时,它会变成绿色。可能不是您想要的确切功能,而是一种将参数传递给事件处理程序的方法。