Python

python中函数参数定义和区分*args和**kw的区别以及合理运用

字号+ 作者:blackhair 来源:转载 2016-12-28 09:29 我要评论( )

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

        在python中创建函数是def,创建函数名是def f(),f函数名字,def f(a,b),这里的a,b是两个参数,函数名是自定义的,参数也是自定义,随意就好。看图如下效果:python中函数参数定义和区分*args和**kw的区别以及合理运用 - Blackhair - Blackhair的博客
   我这里就是个效果,f(1,2)是实参,是我调用上面的函数。
     基本的了解了什么是参数,下面讲解下*args和**kw的区别。
    先看一个个去分析,再结合他们,先分析*args,效果图如下:python中函数参数定义和区分*args和**kw的区别以及合理运用 - Blackhair - Blackhair的博客
 这 里的*后面的值是自定义的,只要不是数字就行,定义成*abc,*ccc都可以,len()是函数,它的意思是返回字符串长度。然后前面的a,b是普通参 数,print a print b就是回显1,2,因为我调用f(1,2,3,4,5),除去两个普通参数,剩余的三个值为4,5,6,顾名思义长度为3。
 
    接着分析**kw,效果图如下:python中函数参数定义和区分*args和**kw的区别以及合理运用 - Blackhair - Blackhair的博客
 
 ** 和*自定义都是一样的,**后面也是自定义,后面不是数字就行。我这里定义的是**c,这里就和*不一样,这里你们会发现这里多了个循环,然后在 print ,你们有可能看不懂,你们把眼光看到底下的f()的函数调用,调用最后的答案为c:name,然后再看上面的print x+':'+str(c[x])就会变得轻松,你们会说str是什么,str()是一个函数,他的含义是可以将数字型变量或常量改变成字符型变量或常量。 所以当我们调用他时,c='name'这里就要加引号,因为这是字符串,而age=6却不要加引号,因为6是整数类型。
   看到这里你们应该基础了解了*和**的用法,那我们结合*和**联合用法,效果图如下:python中函数参数定义和区分*args和**kw的区别以及合理运用 - Blackhair - Blackhair的博客
   因为我前面分开讲了*和**的用法,合并起来,他们不变,位置上没有变化。当你看到这里你会说*和**有什么区别,是的,他们的区别在于,*是包含其他 数字的,在这里面*c是一个tuple,而**d在这里包含的是字符串或者根据print x+':'+str(d[x]),判断类型为xx=xx的,包含于d里面,这样我们就能很清晰的去区分并且学习它!

本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Python/512.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 动力ssrf漏洞利用python脚本

    动力ssrf漏洞利用python脚本

    2017-04-18 08:53

  • python多线程在渗透测试中的应用

    python多线程在渗透测试中的应用

    2017-03-09 13:54

  • Python学习笔记

    Python学习笔记

    2016-12-28 09:31

  • 记录一次简单的python爬虫经历

    记录一次简单的python爬虫经历

    2016-12-28 09:30

网友点评
暂时未开启评论功能~