如何将可变长度参数传递给另一个函数的参数?

时间:2019-03-21 17:21:56

标签: python python-3.x parameter-passing

如何将可变长度参数传递给另一个函数的参数?

def fun(a,b,c):
    #calculating
    pass

from inspect import signature

def example(*args):
    if len(args) >= len(signature(fun).parameters):
        fun(args); # how do i do this without modifying fun function
        return
    print("error")

2 个答案:

答案 0 :(得分:0)

fun(args)更改为fun(*args[:3])。这仅占用args的前3个元素并将其解压缩。

编辑:正如kindall在他的回答中所写,您还应该参数化numargs

答案 1 :(得分:0)

使用切片以确保您拥有正确数量的参数,然后使用解压缩将它们作为单独的参数传递。

def example(*args):
    numargs = len(signature(fun).parameters)
    if len(args) >= numargs:
        return fun(*args[:numargs])
    print("not enough arguments")