我目前正在使用'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)
它总是从字面上看变量,并说它不能使用它。调用函数时如何使用变量?
答案 0 :(得分:3)
尝试使用getattr
。例如。鉴于游戏名称位于gamename
变量:
getattr(getattr(Scripts, gamename), gamename)(version, size, download)
应该有用。