我有一个
的功能def abc(a,b,c):
#do something
pass
我想用列表而不是abc(a,b,c)
来称呼它,例如:
abc([1,2,3])
我无法更改abc
的定义。
用例:
我正在尝试使用ast
库
在实现ast.Call
时,我希望能够使用多个参数调用我的函数。
但是,如果node的类型为ast.Call
,则参数将以列表的形式传递。
E.g:
>> exp = ast.parse('abc(1,2)', mode='eval').body
>> exp
# <_ast.Call at 0x2ab3c5bef7d0>
>> exp.args
#[<_ast.Num at 0x2ab3c5bef850>, <_ast.Num at 0x2ab3c5bef890>]
问题是,当我返回给我的args是一个列表时,我无法理解如何调用名称为abc
的函数。
我会尝试调用库函数,例如min
,max
,len
,str
以及我自己的函数,例如contains
,{{1}我无法理解的是,如何将参数列表传递给带有多个参数的函数?
答案 0 :(得分:1)
您可以通过使用*
>>> def abc(a,b,c): print(a,b,c)
...
>>> abc(1,2,3)
1 2 3
>>> abc(*[1,2,3])
1 2 3