Python 中的 *args 和 **kwarges

函数定义

在函数定义中使用 *args 和 **kwargs 传递可变长参数
*args 用作传递非命名键值可变长参数列表(位置参数)
**kwargs用作传递键值可变长参数列表

*args

传递一个位置参数以及两个可变长参数

1
2
3
4
5
6
def test_var_args(farg, *args):
print "formal arg:", farg
for arg in args:
print "another arg:", arg

test_var_args(1, "two", 3)

Results:

1
2
3
formal arg: 1
another arg: two
another arg: 3

**kwargs

传递一个位置参数和两个键值参数

1
2
3
4
5
6
def test_var_kwargs(farg, **kwargs):
print "formal arg:", farg
for key in kwargs:
print "another keyword arg: %s: %s" % (key, kwargs[key])

test_var_kwargs(farg=1, myarg2="two", myarg3=3)

Results:

1
2
3
formal arg: 1
another keyword arg: myarg2: two
another keyword arg: myarg3: 3