使用*args和**kwargs作为函数参数的替代

2024-10-01 15:37:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个关于*args和**kwargs的问题。我知道当你不知道有多少参数将被传递给函数时,就会用到它们。但当我不知道这些是什么的时候,它能代替一些实际需要的论点吗?在

如果有功能:

def functionName(a, b):
    ...some code...
    doSomethingUsing(a)
    doSomethingUsing(b)

如果我不知道函数采用什么参数,我可以简单地使用functionName(*args,**kwargs)-还是functionName(*args)?我注意到有些人倾向于这样使用它-但是我不确定在python中*和**是否就是这样工作的?在


Tags: 函数功能参数defargscodesomekwargs
2条回答

调用function(*args)等同于function(arg[0], arg[1],...,arg[N])。在

如果不知道函数需要什么参数,只需调用它并查看异常:

>>> def f(a,b,c):
...     pass
...
>>> f()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: f() missing 3 required positional arguments: 'a', 'b', and 'c'

或者您可以使用交互式help。在

^{pr2}$

是的,您可以同时使用*args和**kwargs,但是顺序很重要您可以有一个想法here。如果你想在函数中使用这两个函数,那么顺序是

some_func(*args,**kwargs)

相关问题 更多 >

    热门问题