我想从linux命令提示符运行python函数。因此,我定义了从linux输入到要执行的函数的映射函数和字典。所以,例如
def help():
print(...)
def dostuff():
do sth
functions ={
'help': help()'
''dostuff' : dostuff()
}
def parsecommand():
return functions[sys.argv]
if __name__='__main__':
parsecommand()
当我现在从Linux运行一个函数时,[python filename.py]现在帮助解决问题是python运行字典中的所有函数并在构建字典时执行它们。我怎么能避免这个? 或者什么是更好的结构呢?
答案 0 :(得分:3)
像这样更改你的字典:
functions = {
'help': help,
'dostuff' : dostuff
}
这将允许您以下列方式调用函数:
functions[sys.argv[1]]()
答案 1 :(得分:2)
删除字典中函数名称旁边的()
。
functions ={
'help': help
'dostuff' : dostuff
}
你不能像这样运行这些功能:
return functions[sys.argv[1]]()
答案 2 :(得分:0)
functions = {
'help': help,
'dostuff': dostuff
}
def parsecommand():
return functions[sys.argv]()