如何将列表元素作为参数传递给函数?
我正在用Python构建一个简单的解释器,但在处理函数的参数数量不同时遇到了一些麻烦。目前我获取命令和参数列表的方法如下:
args = str(raw_input('>> ')).split()
com = args.pop(0)
然后在执行命令时,我会检查这个命令是否在我定义的命令和代码的对应关系字典里,如果在的话,就调用我存储的那个函数。对于没有参数的命令,这样做看起来是这样的:
commands[com]()
不过,如果一个命令有多个参数,我希望能这样处理:
commands[com](args[0],args[1])
有没有什么技巧可以让我把参数列表中的一些(或者全部)元素传递给我想要调用的函数?或者有没有更好的方法来实现这个,而不需要使用Python的Cmd
类?
1 个回答
14
试着把你的列表拆开,变成位置参数:
commands[com](*args)