python中的参数

Posted 北京流浪儿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中的参数相关的知识,希望对你有一定的参考价值。

在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,

参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数

请看实例代码:

def func(a,b,c=0,*args,**kw):
    print a=,a,b=,b,c=,c,args=,args,kw=,kw

>>> func(1,2)
a= 1 b= 2 c= 0 args= () kw= {}
>>> func(1,2,3)
a= 1 b= 2 c= 3 args= () kw= {}
>>> func(1,2,4,(1,3,4,5))
a= 1 b= 2 c= 4 args= ((1, 3, 4, 5),) kw= {}
>>> func(1,2,4,11,22,33,44,55)
a= 1 b= 2 c= 4 args= (11, 22, 33, 44, 55) kw= {}
>>> func(1,2,4,11,22,33,44,55,{x:xx,y:yy})
a= 1 b= 2 c= 4 args= (11, 22, 33, 44, 55, {y: yy, x: xx}) kw= {}
>>> func(1,2,4,11,22,33,44,55,x=xx,y=yy)
a= 1 b= 2 c= 4 args= (11, 22, 33, 44, 55) kw= {y: yy, x: xx}

 

#也可以这么写
def func(a,b,c=0,*args,**kw):
    print a=,a,b=,b,c=,c,args=,args,kw=,kw

args = (1, 2, 3, 4)
kw = {x: 99}
func(1,2,4,*args, **kw)
a= 2 b= 3 c= 4 args= (5, 6, 7, 8) kw= {y: 100, x: 99}

总结:

要注意定义可变参数和关键字参数的语法:

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。

以及调用函数时如何传入可变参数和关键字参数的语法:

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3))

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{‘a‘: 1, ‘b‘: 2})

 

以上是关于python中的参数的主要内容,如果未能解决你的问题,请参考以下文章

python常用代码

有条件地导入 python 类的片段

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

URL 片段中的多个参数

ASP.net MVC 代码片段问题中的 Jqgrid 实现

如何清除片段中的参数?