我有一个接受用户输入的Python程序。我将用户输入存储在一个名为“userInput”的字符串变量中。我希望能够调用用户输入的字符串。。
userInput = input("Enter a command: ")
userInput()
从这里,我得到了错误:TypeError:“str”对象不可调用
目前,我的程序正在做这样的事情:
userInput = input("Enter a command: ")
if userInput == 'example_command':
example_command()
def example_command():
print('Hello World!')
显然,这不是处理大量命令的非常有效的方法。我想让str对象可调用-无论如何要这样做吗?
2条答案
按热度按时间nuypyhwy1#
更好的方法可能是使用dict:
本质上,您提供了文字命令和您可能想要运行的函数之间的Map。
如果输入太多,你也可以使用
local
关键字,它将返回每个函数、变量等的字典。当前范围内当前定义的:但这并不完全安全,因为恶意用户可能输入与变量名相同的命令,或者您不希望他们运行的某些函数,并最终导致代码崩溃。
2ledvvac2#
你可以使用
exec
方法来实现。exec命令执行字符串。
您必须记住,允许用户在没有适当验证的情况下执行代码是危险的。