Python可变长度的参数
2014-03-09 10:37
295 查看
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',))
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'})
非关键字可变长参数
首先我们定义如下函数: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'})
相关文章推荐
- Python中如何使用*args 和 **kwargs (非keyworded,可变长度参数列表 keyworded形式可变长度的参数列表)
- Python 可变长度参数
- Python中函数参数(默认、列表、可变长度、字典类型)
- 【转】Python可变长度的函数参数
- 【转】Python可变长度的函数参数
- Python中函数的参数传递与可变长参数
- python-函数中的参数类型和可变参数解析
- Java语法糖1:可变长度参数以及foreach循环原理
- JAVA类型后面跟3个点(可变长度参数列表)
- Python新手学习基础之函数-可变参数**
- scala可变长度参数(二)
- 深入了解JAVA可变长度的参数(Varargs)
- GNU C语言的 扩展(二)零长度数组&可变参数宏
- scala可变长度参数(二)
- 可变长度参数 char frm,... char frm...
- python--通过可变参数计算n个数的乘积
- Java 可变长度参数
- python的位置参数、默认参数、关键字参数、可变参数区别
- Python中函数的参数定义和可变参数
- JAVA 可变长度的参数