知行编程网知行编程网  2022-10-21 00:00 知行编程网 隐藏边栏  7 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于详说Python风格的函数分配参数的相关知识,包括平均分用哪个函数,以及平均分函数公式这些编程知识,希望对大家有参考作用。

详述 Python 风格的函数赋值参数

一、分配参数的定义

参数集合是指在定义函数时,参数个数不能确定,集合参数用于在集合参数的元组中存储不定数量的实际参数。分配参数与此过程相反,在定义函数参数时不是使用星号(1或2),而是在调用传递参数的函数时使用星号(1或2)传递多个参数。

二、分配参数的使用

1.使用1个星号的分配参数

使用带星号的实参时,实参是元组、列表、字典或集合,实参中的元素会按照参数的顺序传递给函数,但是因为字典实际上是传值的取键,集合的元素是没有顺序的,所以不推荐使用字典和按值集合。

举例:

>>> def ?cal(calmethod,number1,number2,*numbers):
    print('number1=',number1,',number2=',number2,',numbers=',numbers,', calmethod=',calmethod)

>>> paras=('+',1,2,3,4) #元组分配参数传值
>>> cal(*pars)
number1= 1 ,number2= 2 ,numbers= (3, 4) , calmethod= +
>>> paras=['+',1,2,3,4]
>>> cal(*paras) #列表分配参数传值
number1= 1 ,number2= 2 ,numbers= (3, 4) , calmethod= +
>>> paras={'+',1,2,3,4}
>>> cal(*paras) #集合分配参数传值,顺序变化了
number1= 2 ,number2= 3 ,numbers= (4, '+') , calmethod= 1
>>> paras={'+':10,1:20,2:30,3:40,4:50}
>>> cal(*paras) #字典分配参数传值,取的是键作为参数
number1= 1 ,number2= 2 ,numbers= (3, 4) , calmethod= +

详述 Python 风格的函数赋值参数

从上面的例子可以看出,一个星号的集合参数可以通过1个星号的分配参数来传递。

赋值参数其实就是将实参传递的序列数据解包到对应的形参的过程。

2.使用2个星号的分配参数

使用两个星号参数时,参数为字典,字典中的元素会以关键字参数方式传递给函数,其中key为关键字参数,value为关键字参数对应的实际参数值.使用此模式要求参数位于参数列表的末尾。或者以上面的函数为例:

\>>> paras={'calmethod':'+','number1':1,'number2':2,'numbers':[3,4,5]}
\>>> cal(**paras) #报错遇到没有预期的关键字参数'numbers'
\>>> paras={'calmethod':'+','number1':1,'number2':2,'numbers':(3,4,5)}
\>>> cal(**paras) #报错遇到没有预期的关键字参数'numbers'
\>>> paras={'calmethod':'+','number1':1,'number2':2,'*numbers':(3,4,5)}
\>>> cal(**paras) #报错遇到没有预期的关键字参数'*numbers'
\>>> paras={'calmethod':'+','number1':1,'number2':2}
\>>> cal(**paras)
number1= 1 ,number2= 2 ,numbers= () , calmethod= +

详述 Python 风格的函数赋值参数

从上面的案例可以看出来:

1)两个星号的参数赋值不能给两个星号的集合参数传值,因为这样没有意义,最好用形参作为字典类型,实参是字典数据来操作。 2)分配参数模式和收集参数模式可以共存,如上例,但这种使用模式意义不大,一般不推荐。

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享