Python可变长度的参数

来源:互联网 发布:诚信买卖宝源码 编辑:程序博客网 时间:2024/04/30 05:42

Python中定义的函数参数列表可以很神奇,主要是有非关键字可变长参数和关键字变量参数。

非关键字可变长参数

首先我们定义如下函数:

def tuple_var_args(arg1,arg2='default arg2',*vargs_tuple):    print 'format arg1:',arg1    print 'format arg2:',arg2    for arg in vargs_tuple:        print 'another arg:',arg

然后就可以按照如下方式调用:

tuple_var_args('arg1')tuple_var_args('arg1','arg2')tuple_var_args('arg1',arg2='arg2')tuple_var_args('arg1','arg2','arg3')tuple_var_args('arg1','arg2',*('arg3',))
tuple_var_args('arg1',*('arg3',))#这里arg3传递给arg2


关键字变量参数

首先定义如下函数

def dict_var_args(arg1,arg2='default arg2',**vargsd):    print 'format arg1:',arg1    print 'format arg2:',arg2    for arg in vargsd:        print 'another arg:',arg
调用方式如下:

dict_var_args('arg1')dict_var_args('arg1','arg2')dict_var_args('arg1',arg2='arg2')dict_var_args('arg1','arg2',arg3='arg3')dict_var_args('arg1',arg3='arg3')dict_var_args(1,**{'foo':4,'bar':5}) dict_var_args(**{'arg1':1,'foo':4,'bar':5})

混合使用

定义如下函数

def tuple_dict_var_args(arg1,arg2='default arg2',*tuple_args,**vargsd):    print 'format arg1:',arg1    print 'format arg2:',arg2    for t_arg in tuple_args:        print 'another no-key arg:',t_arg    for arg in vargsd:        print 'another key arg:',arg

调用方式如下:

tuple_dict_var_args(1,2,3,4,5)#3,4,5传给*tuple_argstuple_dict_var_args(1,*(1,2,3,45),a=1,b=2)tuple_dict_var_args(1,*(1,2,3,45),**{'a':'a','b':'b'}) 


0 0
原创粉丝点击