Передача обновленного значения переменной между модулями - PullRequest
0 голосов
/ 21 октября 2019

У меня есть два модуля в Pygame. Один (game_manager) отвечает за создание игры и за все действия, которые вы можете выполнять там. Другой (window_manager) отвечает за обновление окна игры и отрисовку всех элементов.

При рефакторинге кода для создания новых режимов игры я столкнулся с проблемой.

Я хочу передать переменнуюDECK_PLAYER из game_manager в window_manager:

# IN GAME_MANAGER.py
TABLERO = []
DECK_PLAYER = []

<some code>

def set_tablero(size):
    global TABLERO
    global DECK_PLAYER

    TABLERO = class_board.crear_tablero(size)
    DECK_PLAYER = class_cards.create_decks()

def get_deck_player():
    global DECK_PLAYER
    print("get_deck_player() -> ", DECK_PLAYER)
    return DECK_PLAYER

if __name__ == "__main__":

    board_size = 3
    CLOCK.tick(30)
    set_tablero(board_size)
    print("get_deck_player() -> ", get_deck_player())

    game_init()

оба отпечатка пока что выводят правильный результат, DECK_PLAYER в виде списка с элементами. Но если я позвоню

# IN WINDOW_MANAGER.py
    deck_p = game_manager.get_deck_player()
    print(deck_p)

, эта печать вернет пустой список ([]), и я не понимаю, почему. Разве get_deck_player не должен возвращать текущее значение переменной?

1 Ответ

0 голосов
/ 21 октября 2019

РЕШЕНО:

, так как я запускал game_manager в качестве основного, вызов из window_manager должен быть:

import __main__

    deck_p = __main__.get_deck_player()

, чтобы получить правильное значение переменной

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