def foo(*args, **kwargs):
print "Positional arguments are:"
print args
print "Keyword arguments are:"
print kwargs
看一下它是如何工作的
>>> foo(1, 2, 3)
Positional arguments are:
(1, 2, 3)
Keyword arguments are:
{}
>>> foo(1, 2, name='Adrian', framework='Django')
Positional arguments are:
(1, 2)
Keyword arguments are:
{'framework': 'Django', 'name': 'Adrian'}很优雅不是吗?----------------------------------------------------
刚看到一个漂亮的用法:创建字典
def kw_dict(**kwargs):
return kwargs
print kw_dict(a=1,b=2,c='3')#结果{'a':1, 'b':2, 'c':'3'}
小结:
*args是一个可以表示任意多个无名参数的元组tuple
**kwargs表示关键字参数,它是一个字典dict
同时使用两个参数的时候*args必须在**kwargs之前,比如foo(a=1, b='2', c=3, a', 1, None, )会“SyntaxError: non-keyword arg after keyword arg”。
本文详细介绍了Python中*args和**kwargs的功能及用法,包括它们如何收集多个位置参数和关键字参数,并展示了如何利用**kwargs快速创建字典。
1462

被折叠的 条评论
为什么被折叠?



