如何将列表中的元素作为函数参数传递?

9

我正在用Python构建一个简单的解释器,但是在处理函数参数数量不同的情况时遇到了问题。我的当前方法是按照以下方式获取命令/参数列表。

args = str(raw_input('>> ')).split()
com = args.pop(0)

接着要执行com命令,我会检查它是否在我的指令-代码映射字典中。如果是,我会调用那里存储的函数。对于没有参数的命令,代码如下:

commands[com]()

然而,如果一个命令有多个参数,我希望是这样的:
commands[com](args[0],args[1])

有没有什么技巧可以将我的参数列表中的一些(或全部)元素传递给我要调用的函数?或者有没有更好的实现方法,而无需使用Python的Cmd类?

1个回答

14

尝试将你的列表拆包为位置参数:

commands[com](*args)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接