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

问题描述

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

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,kwarg1=None):
    pass

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

阅读更多 here