在python中使用用户输入引用另一个文件中的函数

在python中使用用户输入引用另一个文件中的函数,python,python-import,user-input,Python,Python Import,User Input,在一个文本冒险游戏(python)中,我为下一个动作获取用户输入,并使用正则表达式将输入解析为两个变量。这两个变量是命令的动词和名词,仍然是字符串形式。例如,用户输入导致 最后一个名词=‘吹’ 最后一个动词=‘泡泡’ 正则表达式工作正常 在另一个名为actions的文件中,我有一个动词/动作的函数列表,包括blow函数。我想通过使用regex中的final_名词和final_动词来调用这个函数。另外,我在GameFiles文件中有实际的最后一个动词-宾语气泡 我试过:actions.final\

在一个文本冒险游戏(python)中,我为下一个动作获取用户输入,并使用正则表达式将输入解析为两个变量。这两个变量是命令的动词和名词,仍然是字符串形式。例如,用户输入导致

最后一个名词=‘吹’ 最后一个动词=‘泡泡’

正则表达式工作正常

在另一个名为actions的文件中,我有一个动词/动作的函数列表,包括blow函数。我想通过使用regex中的final_名词和final_动词来调用这个函数。另外,我在GameFiles文件中有实际的最后一个动词-宾语气泡

我试过:actions.final\u动词(Gamefiles.final\u名词)

这不起作用,因为输入仍然是字符串。然后,我尝试以多种不同的方式使用eval,例如:actions.eval(final_动词(GameFiles.eval(剩余的_名词)))

(这也不起作用)


感谢您抽出时间

我想您可以通过以下方式完成:

eval('actions.' + final_verb)(eval('GameFiles.' + remaining_noun))
导入给定的操作和游戏文件,这意味着您可以运行:

actions.blow(Gamefiles.bubbles)
但是,您应该重新考虑以这种方式存储函数和数据。一个简单且稍微好一点的方法是创建一个包含所有函数和对象的字典,然后通过get_项访问它们:

verbs = {'blow' : actions.blow}
nouns = {'bubbles' : Gamefiles.bubbles}

verbs[final_verb](nouns[final_noun])

final\u noon='blow'final\u verb='bubbles'
这些不是颠倒过来的吗?@johnGordon是的,你是对的,很好的,我错误地颠倒了这些,但只有在我发布这个问题时,不是在我的原始代码中。