0

我正在尝试 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()
4

1 回答 1

0

我的理解是你要解决的问题是事件处理程序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()

当您单击红色光标时,它将变为绿色。可能不是您想要的确切功能,而是将参数传递给事件处理程序的一种方法。

于 2020-04-26T17:43:20.517 回答