当函数的参数不确定时,可以使用*args
和**kwargs
,*args
没有key
值,**kwargs
有key
值。不确定的意思可以是有,有几个,也可以是没有。*args
可以当作可容纳多个变量组成的list
, **kwargs
可以当作容纳多个key
和value
的dictionary
,
just use "*" to collect all remaining arguments into a tuple
*args
称之为Non-keyword Variable Arguments
**kwargs
称之为keyword Variable Arguments
#!/usr/bin/env python
#encoding: utf-8
#usage: show how to use *args and **kwargs
def func_var_args(farg, *args):
print 'arg:', farg
for value in args:
print 'another arg:', value
def func_var_kwargs(farg, **kwargs):
print 'arg:', farg
for key in kwargs:
print 'another pair arg [%s: %s]' %(key, kwargs[key])
if __name__ == '__main__':
func_var_args(1, 'two', 3)
print '========================================'
func_var_kwargs(farg=1, myarg2='two', myarg3=3)
print '========================================'
#不带参数也是可以的
func_var_args(1)
print '========================================'
func_var_kwargs(2)