如何将可变长度参数传递给另一个函数的参数?
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")
答案 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")