python中参数前面加星号是什么意思,python上标星号

  python中参数前面加星号是什么意思,python上标星号

  除了常规的位置参数和关键字参数,函数的参数还支持可变数量的函数参数。这种支持可变参数个数的方法称为参数集合,对应的参数称为集合参数。

  一、参数收集的定义

  Python的函数支持可变的和不确定数量的参数模式。调用函数时向函数传递不定数量的参数,函数识别这些参数并将其保存到指定的参数中,这一过程称为参数集合:

  1.带星号的参数收集模式

  在这种模式下,定义函数时在参数前加一个星号,调用函数时根据位置匹配参数和不带星号的实参。多余的实参会作为元组元素保存在星号对应的形参中,星号后面的形参称为集合形参。

  这种模式的参数收集过程和前面介绍的序列解包类似,只是序列解包将序列中多余的部分存储到星号后面的列表变量中,而函数集合将多余的参数存储到所收集参数对应的元组变量中。这种模式下的参数收集类似于序列解包。收集的参数最好是最后一个形参,但可以出现在函数形参的任何位置。只是这个时候,这个参数后面的参数在被调用时必须以关键字参数的方式传递,否则,这些实际的参数值将作为收集的参数的一部分。

  举个例子,我们来实现一个计算函数,它的最终目的是输入无限个数字,然后调用相应的运算符进行连续运算(如连续加法、连续减法、连续乘法等。).为了突出重点,我们只定义这个函数,输出初始例子中的参数值,以此来验证上面描述的形式参数和实际参数的取值方法。该功能将在以下章节中充分实现。

  函数定义:

  \defcal(number1,number2=无,*numbers,calmethod=$):

  执行print (number1=,number1,,number2=,numbers=,numbers,,calmethod=,calmethod)函数调用:

  \cal(1, )

  数字1=1,数字2=,数字=(),计算方法=$

  \cal(1,2, )

  数字1=1,数字2=2,数字=( ,),计算方法=$

  \cal(1,2,3, )

  数字1=1,数字2=2,数字=(3, ),calmethod=$

  \cal(1,2,3,4, )

  number1=1,number2=2,numbers=(3,4, ),calmethod=$

  \cal(1,calmethod= )

  数字1=1,数字2=无,数字=(),计算方法=

  \cal(1,2,calmethod= )

  数字1=1,数字2=2,数字=(),计算方法=

  \cal(1,2,3,calmethod= )

  数字1=1,数字2=2,数字=(3,),计算方法=

  \cal(1,2,3,4,calmethod= )

  数字1=1,数字2=2,数字=(3,4),计算方法=

  \执行截图如下:

  2.带有两个星号的参数收集模式

  第一种模式的集合参数不能收集由关键字参数传递的参数。要收集关键字参数传递的参数,需要在收集参数之前使用两个星号。此时,集合参数对应于一个字典而不是元组。

  这种模式的集合参数必须放在函数的末尾,因为关键字参数的函数参数后面不允许有非关键字参数。在这种情况下,keyword参数的参数名不是上一节介绍的函数定义中的keyword参数名,而是调用实参时以keyword参数形式传递的不定数量的参数。两种模式的收集参数可以混合使用。

  \defcal(calmethod= ,*topnopers,**lastnopers):

  Print (operator=,calmethod,,前几个操作参数是=,topnopers,,后几个操作参数是=,lastoperators)

  \cal(,1,2,3,4,n5=5,n6=6,n7=7)运算符=,前几个运算参数=(1,2,3,4),后几个运算参数={n5 3360 5, n6 330。

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

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