python函数的可变参数有哪几种,各有什么特点,如何定义带有可变数量参数的函数Python

  python函数的可变参数有哪几种,各有什么特点,如何定义带有可变数量参数的函数Python

  许多编程语言允许定义可变数量的参数,因此在调用函数时可以传递任意数量的参数。Python也不例外。Python允许在参数前添加星号(*),这意味着该参数可以接收多个参数值,这些值作为元组传入。

  以下程序定义了一个参数数量可变的函数:

  #定义支持参数集合的函数

  deftest(a,*书籍):

  印刷品(书籍)

  #书籍被视为元组。

  forbinbooks:

  打印(b)

  #输出整型变量a的值。

  打印(一份)

  #调用test()函数

  测试(5, php中文网, Python教程)运行上面的程序,会看到下面的运行结果:

  (“php中文网”,“Python教程”)

  Php中文网

  Python教程

  5从上面的运行结果可以看出,调用test()函数时,books参数可以传入多个字符串作为参数值。从test()的函数体代码来看,参数集合的本质是一个元组:Python会将传递给books参数的多个值集合成一个元组。Python允许参数列表中任意位置有可变数量的参数(不要要求参数列表中的最后一个参数),但是Python要求一个函数最多只能带一个支持“普通”参数集合的参数。例如,下面的程序:

  #定义支持参数集合的函数

  deftest(*books,num):

  印刷品(书籍)

  #书籍被视为元组。

  forbinbooks:

  打印(b)

  打印(数字)

  #调用test()函数

  Test(php中文网, Python教程,num=20)从上面的程序可以看出,Test()函数的第一个参数是可变个数的形参。由于这个参数可以接收不同的参数值,如果需要将参数值传递给后面的参数,必须使用关键字参数,否则程序会将所有传递的值视为传递给books参数。

  Python还可以收集关键字参数,Python会将这些参数收集到一个字典中。为了让Python收集关键字参数,需要在参数前面添加两个星号。在这种情况下,一个函数可以同时包含一个支持“普通”参数集合的参数和一个支持关键字参数集合的参数。例如,下面的代码:

  #定义支持参数集合的函数

  deftest(x,y,z=3,*书籍,* *分数):

  打印(x,y,z)

  印刷品(书籍)

  打印(分数)

  Test(1,2,3, php中文网, Python教程,语言=89,数学=94)上面的程序调用Test()函数时,第一个1,2,3会传递给常用参数X,Y,Z;接下来的两个字符串将被books参数收集到元组中;最后两个关键字参数将被收集到一个字典中。运行上面的代码,您将看到以下输出结果:

  123

  (“php中文网”,“Python教程”)

  { 中文 336089,数学 336094}对于上述方式定义的test()函数,参数z的默认值几乎不起作用。例如,按如下方式调用test()函数:

  Test(1,2, php中文网, Python教程,language=89,math=94)如果想让z参数的默认值起作用,只需要传入两个position参数。例如,下面的调用代码:

  测试(1,2,语文=89,数学=94)

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

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