如何确定传递给函数的参数数量?

How to determine the number of arguments passed to function?

我有一个函数,它接受可变数量的参数。我想(在函数中)得到传递的数字。声明如下所示:

def function(*args):

函数调用如下:

function(arg1, arg2, ...)

您可以如下定义函数来获取参数的值:

def function(*args):
   for i in range(len(args)):
      print(args[i])

function(3, 5, 8)

结果如下:

3
5
8

args[i]接收传给function的第i个参数的值。

要获取传递的参数个数,可以使用签名模块。 示例:

from inspect import signature

def someMethod(self, arg1, kwarg1=None):
    pass

sig = (signature(someMethod))
print(len(list(sig.parameters)))

输出:

3

要获取参数的名称,您可以:

def someMethod(self, arg1, kwarg1=None):
    pass

sig = (signature(someMethod))
print(list(sig.parameters))

阅读更多 here