码迷,mamicode.com
首页 > 编程语言 > 详细

python中函数参数*args和**kw的区别

时间:2018-02-25 19:07:39      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:rgs   .com   函数名   联合   自定义   为我   分享图片   变化   创建   

1.函数与参数(实参)  

  在python中创建函数是def,创建函数名是def f(),f函数名字,def f(a,b),这里的a,b是两个参数,函数名是自定义的,参数也是自定义,随意就好。看图如下效果:

  技术分享图片

  这里f(1,2)是实参,然后调用上面的函数。

  下面讲解下*args和**kw的区别。

2.*args

  技术分享图片

  这里的*后面的值是自定义的,只要不是数字就行,定义成*abc,*ccc都可以,len()是函数,它的意思是返回字符串长度。然后前面的a,b是普通参数,print a print b就是回显1,2,因为我调用f(1,2,3,4,5),除去两个普通参数,剩余的三个值为4,5,6,顾名思义长度为3。

3.**kw

  技术分享图片

  **和*自定义都是一样的,**后面也是自定义,后面不是数字就行。我这里定义的是**d,这里就和*不一样,这里你们会发现这里多了个循环,然后在print ,你们有可能看不懂,你们把眼光看到底下的f()的函数调用,调用最后的答案为一个键值对的形式,然后再看上面的print x+‘:‘+str(c[x])就会变得轻松,你们会说str是什么,str()是一个函数,他的含义是可以将数字型变量或常量改变成字符型变量或常量。所以当我们调用他时,name=‘zhangsan‘这里就要加引号,因为这是字符串,而age=13却不要加引号,因为13是整数类型。

4.*和**联合用法

  技术分享图片

  因为我前面分开讲了*和**的用法,合并起来,他们不变,位置上没有变化。当你看到这里你会说*和**有什么区别,是的,他们的区别在于,*是包含其他数字的,在这里面*c是一个tuple,而**d在这里包含的是字符串或者根据print x+‘:‘+str(d[x]),判断类型为xx=xx的,包含于d里面,这样我们就能很清晰的去区分并且学习它!

python中函数参数*args和**kw的区别

标签:rgs   .com   函数名   联合   自定义   为我   分享图片   变化   创建   

原文地址:https://www.cnblogs.com/AmilyWilly/p/8469940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!