如何将变量长度参数传递给另一个函数的参数?
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")
使用切片确保您拥有正确数量的参数,然后使用解压缩将它们作为单独的参数传递。
def example(*args):
numargs = len(signature(fun).parameters)
if len(args) >= numargs:
return fun(*args[:numargs])
print("not enough arguments")
将fun(args)
改为fun(*args[:3])
。这只需要args
的前3个元素并解压缩它们。
编辑:在他的回答中写道,你也应该参数化numargs
。