TypeError:' NoneType'对象不可迭代,pygame

时间:2018-05-04 01:08:54

标签: python pygame

def text_objects(text, color, size="small"):
    smallfont = pygame.font.SysFont("comicsansms", 26)
    if size == "small":
        textSurface = smallfont.render(text, True, color)

def screen_message(msg, color, y_displace=0):
    textSurf, textRect = text_objects(msg, color)
    textRect.center = (int(display_width / 2), int(display_height / 2) + y_displace)
    gameDisplay.blit(textSurf, textRect)

这是我有错误的代码部分

错误说,

  

第74行,在game_intro screen_message中("欢迎使用泰坦!",白色,-100)

screen_message("Welcome to Titans!", white, -100)

  

第52行,在screen_message textSurf中,textRect = text_objects(msg,color)

     

TypeError:' NoneType'对象不可迭代

我不明白为什么它谈论NoneType

的错误

1 个答案:

答案 0 :(得分:1)

您的 text_objects 函数内部没有return语句,而您将其返回值分配给 screen_message 函数第一行中的textSurf和textRect。

在任何情况下,您都应确保 text_objects 返回该值对。有时人们在返回语句之前放置一些if语句进行检查,但是却忘记了其他情况等。用作内部缺少返回语句的赋值的右值的函数调用会生成此 TypeError(“'NoneType'对象是不可迭代的“,)错误。