TypeError错误求助:draw_task()需0个参数却传入2个的解决
问题原因
你调用draw_task(green, 50)时传入了2个参数,但定义def draw_task():时没有声明接收参数,所以触发了这个类型错误。另外函数内部使用的color和y_coord变量也未定义,必须通过参数传递进来。
修复后的代码
import pygame pygame.init() #Colour Library red = (255, 0, 0) green = (0, 255, 0) blue = (0, 0, 255) white = (255, 255, 255) black = (0, 0, 0) purple = (127, 0, 255) orange = (255, 165, 0) screen = pygame.display.set_mode([300, 450]) pygame.display.set_caption("Not Adventure Capitalist") background = black framerate = 60 font = pygame.font.Font('freesansbold.ttf', 16) timer = pygame.time.Clock() # 修改函数定义,添加color和y_coord两个参数 def draw_task(color, y_coord): pygame.draw.circle(screen, color, (30, y_coord), 20, 5) pygame.draw.rect(screen, color, [70, y_coord - 15, 200, 30]) pygame.draw.rect(screen, black, [75, y_coord - 10, 190, 20]) running = True while running: timer.tick(framerate) for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill(background) draw_task(green, 50) pygame.display.flip() pygame.quit()
关键修改点
- 将
def draw_task():改为def draw_task(color, y_coord):,让函数能够接收调用时传入的颜色和Y坐标参数 - 函数内部的
color和y_coord变量通过参数传递,解决未定义的问题
运行修改后的代码,就能在黑色背景上显示绿色的圆形和矩形组合效果。
内容的提问来源于stack exchange,提问作者Makcodezy
相关产品推荐
相关产品推荐

