使用用户输入来调用功能
我试图用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]()
-
使用用户输入来创建新对象[JAVA]
2021-01-30 关注 0 浏览129 1答案
-
Java-JTextField-用户按下“空格键”时的调用功能
2021-01-29 关注 0 浏览104 1答案
-
如何调用用户定义函数以与select,group by,order by一起使用?
2021-05-10 关注 0 浏览48 1答案
-
如何使用输入调用测试功能?
2021-01-29 关注 0 浏览65 1答案
-
在bash中的无限循环期间禁用用户输入
2021-02-01 关注 0 浏览119 1答案
-
成功后的Ajax调用功能
2021-01-31 关注 0 浏览104 1答案
-
使用用户脚本捕获页面xmlhttp请求
2021-01-31 关注 0 浏览96 1答案
-
用户使用用户名和密码登录时获取用户ID
2021-03-12 关注 0 浏览75 1答案
-
分号之前有自动调用功能吗?[重复]
2021-02-02 关注 0 浏览83 1答案
-
Python使用用户定义的字符串类
2021-01-29 关注 0 浏览63 1答案