当前位置: 首页 > 面试题库 >

使用用户输入来调用功能

上官树
2023-03-14
问题内容

我试图用Python在用户输入命令的地方做一个“游戏”。但是,我不知道您是否可以将该输入用作函数名。这是我目前的努力:

def move():
    print("Test.")

if __name__ == "__main__":
    input("Press enter to begin.")
    currentEnvironment = getNewEnvironment(environments)
    currentTimeOfDay = getTime(timeTicks, timeOfDay)
    print("You are standing in the {0}. It is {1}.".format(currentEnvironment, currentTimeOfDay))
    command = input("> ")
    command()

在这里,输入是移动的,就像我想尝试调用该函数一样(潜在的最终用户可能会)。但是,出现以下错误:

Traceback (most recent call last):
  File "D:\Text Adventure.py", line 64, in <module>
    command()
TypeError: 'str' object is not callable

我想知道是否有什么方法可以允许用户在游戏中“移动”,程序通过调用“移动”功能来实现。


问题答案:

看起来您正在使用python3.x,其中input返回了一个字符串。要恢复python2.x行为,您需要eval(input())。但是,您不应该这样做。这可能会导致糟糕的一天。

一个更好的主意是将函数放入字典中-

def move():
    #...

def jump():
    #...

function_dict = {'move':move, 'jump':jump }

接着:

func = input('>')  #raw_input on python2.x
function_dict[func]()

以下代码在python3.2上对我有用。

def move():
    print("Test.")

func_dict = {'move':move}
if __name__ == "__main__":
    input("Press enter to begin.")
    currentEnvironment = "room" #getNewEnvironment(environments)
    currentTimeOfDay = "1 A.M." #getTime(timeTicks, timeOfDay)
    print("You are standing in the {0}. It is {1}.".format(currentEnvironment, currentTimeOfDay))
    command = input("> ")
    func_dict[command]()


 类似资料:
  • 问题内容: 我有一个用Python编写的控制台程序。它使用以下命令询问用户问题: 如何测试包含对using的调用的函数?我不想强迫测试人员多次输入文本只是为了完成一次测试运行。 问题答案: 您可能应该模拟内置功能,可以在每次测试后使用提供的功能还原为原始功能。 更好的解决方案是将模块与一起使用。这样,您就不需要使用拆解,并且修补的方法只会存在于范围内。

  • 问题内容: 嗨,我正在尝试创建一个程序来在用户为某个对象输入新信息时创建一个新对象。目前我有这个。 电脑超一流 桌面子类 笔记本电脑子类 因此,有一个班级和两个子班级,但我认为这并不重要。因此,如果我输入1,则应该为Desktop创建一个新对象,如果我输入2,则将为Laptop创建一个新对象。当我输入3时,它应该显示所有创建的对象。我不知道如何让他们工作,请帮助。 问题答案: 使用您提供的限制信息

  • 问题内容: 我正在编写一个Wordpress MU插件,它在每个帖子中都包含一个链接,并且我想在用户单击此链接时使用ajax调用插件功能之一,然后使用该功能的输出动态更新链接文本。 。 我陷入了ajax查询。我已经有了这种复杂的,显然有点乱的方法,但是它不是很有效。在插件中包含Ajax功能的“正确”或“ wordpress”方式是什么? (下面是我当前的黑客代码。单击生成链接时,在wp页面中得到的

  • 本文向大家介绍vue监听用户输入和点击功能,包括了vue监听用户输入和点击功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了vue监听用户输入和点击的具体代码,供大家参考,具体内容如下 功能1:监听用户输入和点击,并实时显示, 功能2:点击发布,编辑页面隐藏,显示发布成功。 功能1 html代码: 使用:v-model监听,!submmited视图默认显示,注意监听option v

  • 问题内容: 我遇到一种情况(在硒测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全密码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了硒文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值

  • 问题内容: 我有一种情况(在selenium测试期间),在这种情况下,用户将收到安全代码。然后,用户必须先输入安全代码,然后才能继续操作。 我不太确定如何获得用户输入的值。我浏览了selenium文档,并提出了这个建议。不幸的是,它并不是很有效。 有人可以指出我正确的方向吗? 问题答案: 似乎您必须先接受并关闭提示,然后才能存储和使用该值