Python函数可变参数*args及**kwargs详解
2017-11-02 17:24
881 查看
初学Python的同学们看到代码中类似func(*args, **kwargs)这样的函数参数定义时,经常感到一头雾水。
下面通过一个简单的例子来详细解释下Python函数可变参数*args及**kwargs,先给出标准答案:
1. *args是arguments单词缩写,表示任意多个无名参数,是一个tuple,如 (1,2,3,'a','b','c')
2. **kwargs是keyword arguments单词缩写,表示关键字参数,是一个dict,如{'a':1,'b':2,'c':3}
示例代码:
运行结果:
需要注意的是,当同时使用*args和**kwargs时,*args参数必须在**kwargs前。要是像foo(1,a=1,b=2,c=3,2,3)这样调用的话,则会提示语法错误"SyntaxError: non-keyword arg after keyword arg"。
下面通过一个简单的例子来详细解释下Python函数可变参数*args及**kwargs,先给出标准答案:
1. *args是arguments单词缩写,表示任意多个无名参数,是一个tuple,如 (1,2,3,'a','b','c')
2. **kwargs是keyword arguments单词缩写,表示关键字参数,是一个dict,如{'a':1,'b':2,'c':3}
示例代码:
# coding:utf-8 def foo(*args,**kwargs): print 'args=',args print 'kwargs=',kwargs print '*'*20 if __name__=='__main__': #只传参数*args=(1,2,3) foo(1,2,3) #只传参数**kwargs=dict(a=1,b=2,c=3) foo(a=1,b=2,c=3) #传入参数*args=(1,2,3) #传入参数**kwargs=dict(a=1,b=2,c=3) foo(1,2,3,a=1,b=2,c=3) #传入参数*args=(1,'b','c') #传入参数**kwargs=dict(a=1,b='b',c='c') foo(1,'b','c',a=1,b='b',c='c')
运行结果:
args= (1, 2, 3) kwargs= {} ******************** args= () kwargs= {'a': 1, 'c': 3, 'b': 2} ******************** args= (1, 2, 3) kwargs= {'a': 1, 'c': 3, 'b': 2} ******************** args= (1, 'b', 'c') kwargs= {'a': 1, 'c': 'c', 'b': 'b'} ********************
需要注意的是,当同时使用*args和**kwargs时,*args参数必须在**kwargs前。要是像foo(1,a=1,b=2,c=3,2,3)这样调用的话,则会提示语法错误"SyntaxError: non-keyword arg after keyword arg"。
相关文章推荐
- Python 函数可变参数列表*args和**kwargs
- Python中函数可变参数类型(*args、**kwargs)
- Python函数可变参数* args及**kwargs 应用
- 详解Python函数可变参数定义及其参数传递方式
- python 函数参数 *args 和 **kwargs
- Python可变参数*args和**kwargs用法实例小结
- Python定义的函数(或调用)中参数*args 和**kwargs的用法
- python中的函数参数定义和可变参数详解
- 5.1 Python 函数-默认参数,*args,**kwargs的使用;作用域-局部空间使用全局变量需要注意的事项等
- Python定义函数中的可变参数**kw及*args
- 理解 Python 中的可变参数 *args 和 **kwargs:
- python函数参数中*args,**kwargs的使用和意义
- 函数的可变参数 *args和**kwargs
- python函数参数*args**kwargs用法实例
- python *args **kwargs,传入不固定的参数给函数,或者传入很多的内容给函数,常用在构造函数中。
- python中的可变参数 【*args】和【**kwargs】
- Python函数中*args和**kwargs来传递变长参数的用法
- python函数可变参数*args和**kwargs区别
- Python函数可变参数定义及其参数传递方式实例详解
- Python函数可变参数args及kwargs释义