Объясните, как работает этот код (Python)?

class GameState(Enum):
   QUIT = -1
   TITLE = 0
   NEWGAME = 1

def main():
   pygame.init()

   screen = pygame.display.set_mode((screen_w, screen_h))
   game_state = GameState.TITLE

   while True:
      if game_state == GameState.TITLE:
          game_state = title_screen(screen)

      if game_state == GameState.NEWGAME:
          game_state = play_level(screen)

      if game_state == GameState.QUIT:
          pygame.quit()
          return

Меня интересует данная строка из функции main():

if game_state == GameState.TITLE:
        game_state = title_screen(screen)

Проверяется условие, а потом выполняется присвоение переменной game_state функции title_screen(). Но дело в том, что переменная game_state больше нигде в коде не вызывается, только в цикле while и эта строчка

game_state = title_screen(screen)

срабатывает в коде так, как будто после проверки условия происходит не присвоение, а непосредственно вызов функции title_screen(), как будто если бы было просто

if game_state == GameState.TITLE:
        title_screen(screen)

Объясните, как это работает, почему вместо вызова функции используется присвоение переменной? Вот полный код, если что: https://disk.yandex.ru/d/LFmmqnkNMIawgg


Ответы (0 шт):