TypeError: объект NoneType не повторяется, pygame - PullRequest
0 голосов
/ 04 мая 2018
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 голосов
/ 24 ноября 2018

Ваша text_objects функция не имеет оператора return внутри, тогда как вы возвращаете ее возвращаемое значение в textSurf, textRect в первой строке screen_message function.

Вы должны убедиться, что ваш text_objects возвращает эти пары значений в любом случае. Иногда люди помещают некоторые операторы if для проверок перед операторами возврата, но забывают о других ситуациях и т. Д. Вызовы функций, которые используются в качестве правого значения присваивания с пропущенными операторами возврата внутри, могут генерировать этот TypeError (объект "NoneType" не повторяется ",) ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...