Python可变长度的参数

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_args
tuple_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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值