0

可能重复:
如何动态加载 Python 类

我目前正在使用“while”循环来自动更新存储在数据库中的游戏。'while' 循环迭代直到达到游戏数。每次迭代都会返回包含所有游戏数据(版本、更新链接等)的行。

现在,我在一个名为“Scripts”的子目录中为每个游戏创建了脚本。像这样

MainScript.py
  --> Scripts
       --> Game1.py
       --> Game2.py
       --> Game3.py

现在 MainScript 连接数据库并获取游戏名称后,将所有游戏脚本一一调用。

但问题是存储在数据库中的游戏名称是一个字符串,Game1.py、Game2.py、Game3.py 中的每个函数都与游戏名称相同。

这意味着当我尝试调用游戏的函数时,可以说“我的世界”。它必须看起来像这样。

Scripts.Minecraft.Minecraft(version, size, download)

现在尝试动态地执行此操作是我的问题。因为它在一个while循环中,所以每次迭代的名称部分都会改变。我如何动态地做到这一点?

Scripts.<GameName>.<GameName>(version, size, download)

它总是从字面上接受变量并说它不能使用它。调用函数时如何使用变量?

4

1 回答 1

3

尝试使用getattr. 例如,游戏名称在gamename变量中:

getattr(getattr(Scripts, gamename), gamename)(version, size, download)

应该管用。

于 2013-01-27T13:10:53.703 回答