我想我理解如何在像...这样的函数中单独使用它们。
f(* args)或f(** kargs)
但是如果函数同时接受两个参数呢? 例如:f(* args,** kargs)
答案 0 :(得分:1)
是的,它有效
def f(*args, **kwargs):
pass
如果您调用此函数f(1, 3, "foo", [1, 2, 10], a=1, apple=33)
,则函数args
将为(1, 3, "foo", [1, 2, 10])
,kwargs
将为{'a': 1, 'apple': 33}
。
它也会起作用
def f(a, b, foo, *args, **kwargs):
pass
但如果我们使用相同的参数调用此函数,a
将为1
,b
将为3
,foo
将为{{1} },"foo"
将args
,([1, 2, 10])
将是相同的。
答案 1 :(得分:1)
*args
得到位置参数; **kwargs
获取命名参数。例如:
f(1, 2, 3, a=1, b=2, c=3)
将通过
args = (1, 2, 3)
kwargs = {a: 1, b: 2, c: 3}