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

9 投票
1 回答
4082 浏览
提问于 2025-04-15 22:16

我正在用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)

撰写回答