在编写pygame程序中,我想用多线程来绘制矩形,为了美观,我选择绘制圆边矩形,于是在参数传递时,我是这么写的
threading.Thread(target = pygame.draw.rect, args = (canvas, (100, 100, 100), (282, 6, 10, 25), border_radius=30, )).start()
结果弹出了这样的错误
border_radius=30,
^
SyntaxError: invalid syntax
我该如何在避免创建新方法的情况下解决这个问题
若不指定border_radius的话,会将30默认成矩形边框宽度qwq
qwq
比如把border_radius=30,
最后面的逗号删除
Thread的args参数,只能接收线程函数(此处为pygame.draw.rect)的位置参数,不能接收默认参数,也不能接收关键字参数。要想为线程函数传入默认参数和关键字参数,需要使用Thread的kwargs参数。比如,题主的例子应该写成:
threading.Thread(target = pygame.draw.rect, args=(canvas, (100, 100, 100), (282, 6, 10, 25)), kwargs={'border_radius':30}).start()