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

问题描述 投票:-1回答:2

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

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")
python python-3.x parameter-passing
2个回答
0
投票

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

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

0
投票

fun(args)改为fun(*args[:3])。这只需要args的前3个元素并解压缩它们。

编辑:在他的回答中写道,你也应该参数化numargs

© www.soinside.com 2019 - 2024. All rights reserved.