问题描述
我有一个接受可变数量参数的函数。我想(在函数中)得到传递的数字。声明如下所示:
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