args和kargs的参数如何在Python中看起来?

时间:2015-05-17 23:47:19

标签: python function args

我想我理解如何在像...这样的函数中单独使用它们。

f(* args)或f(** kargs)

但是如果函数同时接受两个参数呢? 例如:f(* args,** kargs)

2 个答案:

答案 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将为1b将为3foo将为{{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}