如何使用参数列表调用接受多个参数的函数

2024-04-26 02:34:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数

def abc(a,b,c):
    #do something
    pass

我想用一个列表来代替abc(a,b,c),例如:

abc([1,2,3])

我无法更改abc的定义。你知道吗

用例:

我正在尝试使用ast库编写自己的eval

在实现ast.Call时,我希望能够使用多个参数调用我的函数。你知道吗

但是,如果节点是ast.Call类型,则参数以列表的形式传递。你知道吗

例如:

>> exp = ast.parse('abc(1,2)', mode='eval').body
>> exp
# <_ast.Call at 0x2ab3c5bef7d0>
>> exp.args
#[<_ast.Num at 0x2ab3c5bef850>, <_ast.Num at 0x2ab3c5bef890>]

问题是,当返回给我的参数是一个列表时,我无法理解如何调用名为abc的函数。你知道吗

我会尝试调用库函数,如minmaxlenstr和我自己的函数,如containsget_item等。我不明白的是,如何将参数列表传递给具有多个参数的函数?你知道吗


Tags: 函数列表参数定义defevalpasscall