python函数参数中*args,**kwargs的使用和意义
2017-09-05 23:58
1126 查看
*args和*kwargs是python中经常使用的函数参数,代表着函数的参数数目是可变的。
为讲解清楚两个参数的意义,以下一段代码为例做讲解:
(1)fun(1,2,3,4)
输出结果:
args= (1, 2, 3, 4)
kwargs= {}
说明:在fun函数使用的时候,1,2,3,4全部传给了args,是一个元祖/tuple(可类似的认为是C语言中的constchar[]),而kwargs中没有任何元素,故为空。
(2)fun(a=1,b=2,c=3,d=4)
输出结果:
args= ()
kwargs= {'a': 1, 'c': 3, 'b': 2, 'd': 4}
说明:此时,kwargs中的元素组成了一个字典(dict),args没有任何元素,故为空。
(3)fun(3,2,1,a=4,b=5,ss=123)
输出结果:
args= (3, 2, 1)
kwargs= {'a': 4, 'ss': 123, 'b': 5}
说明:跟(1)和(2)一样。
(4)fun(4,5,1,2,'hello',a='qwe',b='asd',c='zxc')
输出结果:
args= (4, 5, 1, 2, 'hello')
kwargs= {'a': 'qwe', 'c': 'zxc', 'b': 'asd'}
说明:
args可以存字符串,数字。
注意:在函数的参数同时有*args和**kwargs时,args的使用必须要在kwargs的前面,否则编译器会报错。
关于元祖(tuple)和字典(dict),是python中的数据格式,可参考廖雪峰的相关教程进行了解。
Tuple:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819318453af120e8751ea4d2696d8a1ffa5ffdfd7000
dict: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868193482529754158abf734c00bba97c87f89a263b000
为讲解清楚两个参数的意义,以下一段代码为例做讲解:
def fun(*args,**kwargs): print "args = ",args print "kwargs = ",kwargs
(1)fun(1,2,3,4)
输出结果:
args= (1, 2, 3, 4)
kwargs= {}
说明:在fun函数使用的时候,1,2,3,4全部传给了args,是一个元祖/tuple(可类似的认为是C语言中的constchar[]),而kwargs中没有任何元素,故为空。
(2)fun(a=1,b=2,c=3,d=4)
输出结果:
args= ()
kwargs= {'a': 1, 'c': 3, 'b': 2, 'd': 4}
说明:此时,kwargs中的元素组成了一个字典(dict),args没有任何元素,故为空。
(3)fun(3,2,1,a=4,b=5,ss=123)
输出结果:
args= (3, 2, 1)
kwargs= {'a': 4, 'ss': 123, 'b': 5}
说明:跟(1)和(2)一样。
(4)fun(4,5,1,2,'hello',a='qwe',b='asd',c='zxc')
输出结果:
args= (4, 5, 1, 2, 'hello')
kwargs= {'a': 'qwe', 'c': 'zxc', 'b': 'asd'}
说明:
args可以存字符串,数字。
注意:在函数的参数同时有*args和**kwargs时,args的使用必须要在kwargs的前面,否则编译器会报错。
关于元祖(tuple)和字典(dict),是python中的数据格式,可参考廖雪峰的相关教程进行了解。
Tuple:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819318453af120e8751ea4d2696d8a1ffa5ffdfd7000
dict: https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868193482529754158abf734c00bba97c87f89a263b000
相关文章推荐
- 5.1 Python 函数-默认参数,*args,**kwargs的使用;作用域-局部空间使用全局变量需要注意的事项等
- Python函数可变参数*args及**kwargs详解
- Python 函数可变参数列表*args和**kwargs
- Python函数中*args和**kwargs来传递变长参数的用法
- python函数参数*args**kwargs用法实例
- Python定义的函数(或调用)中参数*args 和**kwargs的用法
- python 函数参数 *args 和 **kwargs
- python中的含有 *args 和**kwargs的用法 作为参数的函数,参数输入问题
- python函数参数*args**kwargs用法实例
- Python函数可变参数* args及**kwargs 应用
- python字典(dictionary)使用:基本函数code实例,字典的合并、排序、copy,函数中*args 和**kwargs做形参和实参
- python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。
- Python函数中*args和**kwargs来传递变长参数的用法
- Python中函数可变参数类型(*args、**kwargs)
- python函数参数*args**kwargs用法实例
- python字典(dictionary)使用:基本函数code实例,字典的合并、排序、copy,函数中*args 和**kwargs做形参和实参
- Python 函数当中的不定参数 *args 和**kwargs 姐妹花
- Python函数参数传递的*args和**kwargs
- python 函数的*args,**kwargs
- python 函数的*args,**kwargs