python不定长参数详解,python函数不可以传递变长的参数

  python不定长参数详解,python函数不可以传递变长的参数

  我们谈了这么多参数,或多或少都会有一些限制。当我在边肖学习时,我发现了一个非常有趣的新参数。它的长度和类型都不固定,非常符合它的名字,也就是变长参数。那么,这些参数在调用函数时有什么区别呢?带着这个问题,我们来学习一下在python中使用变长参数调用函数。

  函数的变长参数包括*args和**kwargs。完整的示例如下:

  DEF _ PRINT (* args,* * kwargs) 3360 #传递可变长度的参数,即参数个数不固定。

  打印(参数)

  印刷品(夸脱)

  函数_打印()

  输出结果:

  ()

  {}代码分析:从输出结果可以看出,第一个参数*args是元组类型,第二个参数**kwargs是字典dict类型。

  微软雅黑,Microsoft YaHei; font-size: 14px; mso-spacerun: "yes"; mso-font-kerning: 1.0000pt;">对于任意函数,都可以通过func_name(*args, **kw)的形式来进行调用,其中 args 是一个已经获得的列表或者元组,而 kw 是一个已经获得的字典。列表传入会按顺序对必输参数赋值,多余的参数会当成可变参数传入,而字典传入会根据 key 来匹配所有参数。如:

  

deftest1(a,b,c=0,*args,**kwargs):

  print('a=',a,'b=',b,'c=',c,'args=',args,'kw=',kwargs)

  

  deftest2(a,b,c=0,*args,d,**kwargs):

  print('a=',a,'b=',b,'c=',c,'d=',d,'args=',args,'kw=',kwargs)

  

  #定义一个元组和字典用作参数传入

  args=(1,2,3,4)

  kw={'d':99,'x':'#'}

  

  test1(*args,**kw)

  #a=1b=2c=3args=(4,)kw={'d':99,'x':'#'}

  test2(*args,**kw)

  a=1b=2c=3d=99args=(4,)kw={'x':'#'}

  

注意函数传参的三种形式:

  

1.普通传参

  

2.缺省参数,如果外部没有为缺省参数传递实参,形参等于默认值

  

3.注意不定长参数的拆包,普通实参打包为元组tuple类型,关键字参数打包为字典dict类型

  


  

以上就是不定长参数调用函数的方法了,相信小伙伴们都对这种长度、类型不限定的参数非常感兴趣,学会的一起运行代码,看看是否跟小编的结果一致呢~

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: