代码改变世界

python中应用*args 与**kwargs

2016-12-01 14:47  python黑旋风  阅读(410)  评论(0)    收藏  举报
这是Python函数可变参数 args及kwargs------->目的是:当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
 
  args表示任何多个无名参数,它是一个tuple  ----->元组
  kwargs表示关键字参数,它是一个dict   ----->字典
理解:
  *args表示任何多个无名参数,它是一个元组解包候的结果
  **kwargs表示关键字参数,它是一个字典解包候的结果

 

 

测试代码如下:

1
2
3
4
5
6
7
8
9
def foo(*args,**kwargs):
print 'args=',args
print 'kwargs=',kwargs
print '**********************'
if __name__=='__main__':
foo(1,2,3)
foo(a=1,b=2,c=3)
foo(1,2,3,a=1,b=2,c=3)
foo(1,'b','c',a=1,b='b',c='c')

 

执行结果如下:

1
2
3
4
5
6
7
8
9
10
11
12
args= (123)
kwargs= {}
**********************
args= ()
kwargs= {'a'1'c'3'b'2}
**********************
args= (123)
kwargs= {'a'1'c'3'b'2}
**********************
args= (1'b''c')
kwargs= {'a'1'c''c''b''b'}
**********************