python - 在模块之间传递变量的更新值
问题描述
我在 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 不应该返回变量的当前值吗?
解决方案
解决了:
当我将 game_manager 作为 main 运行时,来自 window_manager 的调用应该是:
import __main__
deck_p = __main__.get_deck_player()
获取变量的正确值
推荐阅读
- r - 如果 R 模拟研究中的错误声明
- flutter - 无法解析配置“:app:debugRuntimeClasspath”的所有文件
- java - 如何使用 C# Unity 进行 whatsapp 视频通话
- html - 引导选项卡的深层链接
- angular - 角 | 在 innerHTML 中动态添加组件
- reactjs - 在没有 CDN 的微前端包之间共享反应
- python - PySimpleGUI 由于使用 Jpype 的后台任务而冻结并且不能使用多线程
- reactjs - 为什么重定向会在我的 iOS 上的 PWA 中显示浏览器 chrome
- c++ - C++ 在函数参数中为整数设置最大数的最佳方法是什么
- c# - 记录 ITFoxtec 时出现 CORS 错误