使用用户输入引用 python 中另一个文件中的函数
Using user input to reference function in another file in python
在文字冒险游戏 (python) 中,我获取用户输入的下一步操作,并使用正则表达式将输入解析为两个变量。两个变量分别是命令的动词和名词,仍然是字符串形式。例如,用户输入导致...
final_noun = 'blow'
final_verb = 'bubbles'
正则表达式工作正常。
在另一个名为 actions 的文件中,我有一个 verbs/actions 的函数列表,包括 blow 函数。我想通过纯粹使用正则表达式中的 final_noun 和 final_verb 来调用这个函数。另外,我在文件 GameFiles 中有实际的最终动词宾语气泡。
我试过了:actions.final_verb(Gamefiles.final_noun)
这不起作用,因为输入仍然是字符串。然后我尝试以多种不同的方式使用 eval,例如:actions.eval(final_verb(GameFiles.eval(remaining_noun)))
(这也没有用)
感谢您的宝贵时间
我想你可以这样写:
eval('actions.' + final_verb)(eval('GameFiles.' + remaining_noun))
导入了给定的动作和游戏文件,这意味着您可以运行:
actions.blow(Gamefiles.bubbles)
但是,您应该重新考虑以这种方式存储函数和数据。一个简单但更好一点的方法是创建一个包含所有函数和对象的字典,然后通过 get_item:
访问它们
verbs = {'blow' : actions.blow}
nouns = {'bubbles' : Gamefiles.bubbles}
verbs[final_verb](nouns[final_noun])
在文字冒险游戏 (python) 中,我获取用户输入的下一步操作,并使用正则表达式将输入解析为两个变量。两个变量分别是命令的动词和名词,仍然是字符串形式。例如,用户输入导致...
final_noun = 'blow' final_verb = 'bubbles'
正则表达式工作正常。
在另一个名为 actions 的文件中,我有一个 verbs/actions 的函数列表,包括 blow 函数。我想通过纯粹使用正则表达式中的 final_noun 和 final_verb 来调用这个函数。另外,我在文件 GameFiles 中有实际的最终动词宾语气泡。
我试过了:actions.final_verb(Gamefiles.final_noun)
这不起作用,因为输入仍然是字符串。然后我尝试以多种不同的方式使用 eval,例如:actions.eval(final_verb(GameFiles.eval(remaining_noun)))
(这也没有用)
感谢您的宝贵时间
我想你可以这样写:
eval('actions.' + final_verb)(eval('GameFiles.' + remaining_noun))
导入了给定的动作和游戏文件,这意味着您可以运行:
actions.blow(Gamefiles.bubbles)
但是,您应该重新考虑以这种方式存储函数和数据。一个简单但更好一点的方法是创建一个包含所有函数和对象的字典,然后通过 get_item:
访问它们verbs = {'blow' : actions.blow}
nouns = {'bubbles' : Gamefiles.bubbles}
verbs[final_verb](nouns[final_noun])