dict中的映射函数

时间:2012-12-04 21:35:13

标签: python

我想从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运行字典中的所有函数并在构建字典时执行它们。我怎么能避免这个? 或者什么是更好的结构呢?

3 个答案:

答案 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]()