国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python基础教程 > 详解Python函数中参数带星号是什么意思

详解Python函数中参数带星号是什么意思

头像

silencement

2019-07-10 10:43:216019浏览 · 0收藏 · 0评论

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

一、参数收集的定义

Python的函数支持可变不定数量的参数模式,这种将不定数量实参在调用时传递给函数,函数将其识别并保存到指定形参的过程称为参数收集:

1、带一个星号的参数收集模式

这种模式是在函数定义时在某个形参前面加一个星号,调用时按位置匹配不带星号的形参和实参,多余的实参都将作为一个元组的元素保存到星号对应的形参中,该星号后的形参就称为收集参数。

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

举例:我们来实现一个计算函数,其终极目标是输入一串不限数量的数字,然后调用对应的运算符进行连续运算(如连加、连减、连乘等)。为了突出重点,我们在最初的例子只是定义这个函数并输出参数值,以来验证上面相关描述对于形参和实参的取值方法。后面章节再来完整实现该函数。

函数定义:

\>>> def cal(number1,number2=None,*numbers,calmethod='$'):

    print('number1=',number1,',number2=',number2,',numbers=',numbers,', calmethod=',calmethod)

函数调用执行:

\>>> cal(1,'+')

number1= 1 ,number2= + ,numbers= () , calmethod= $

\>>> cal(1,2,'+')

number1= 1 ,number2= 2 ,numbers= ('+',) , calmethod= $

\>>> cal(1,2,3,'+')

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

\>>> cal(1,2,3,4,'+')

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

\>>> cal(1,calmethod='+')

number1= 1 ,number2= None ,numbers= () , calmethod= +

\>>> cal(1,2,calmethod='+')

number1= 1 ,number2= 2 ,numbers= () , calmethod= +

\>>> cal(1,2,3,calmethod='+')

number1= 1 ,number2= 2 ,numbers= (3,) , calmethod= +

\>>> cal(1,2,3,4,calmethod='+')

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

\>>>

执行截图如下:

20190529141638451.png

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

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

此种模式的收集参数必须放在函数的最后一个,这是因为关键字参数的函数参数之后不允许出现非关键字参数。此种情况的关键字参数的参数名,并不是上节内容介绍的函数定义中的关键字参数名,而是在实参调用时采用关键字参数形式传递的不定数量的参数。 两种模式的收集参数可以混用。

\>>> def cal(calmethod='+',*topnopers,**lastnopers):

print('运算符=',calmethod,',前几个运算参数为=',topnopers,',最后几个运算参数=',lastnopers)

\>>> cal('+',1,2,3,4,n5=5,n6=6,n7=7)

运算符= + ,前几个运算参数为= (1, 2, 3, 4) ,最后几个运算参数= {'n5': 5, 'n6': 6, 'n7': 7}

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

狗和人胶配方20分钟一| 女人尝试到更粗大的心理变化| 这儿是香格里拉| 18岁的少女与狗高清电视剧| 坤坤寒进桃子里在线看歌词 | 99久久无码-区人妻A片潘金莲| 四个人换着来免费观看第二季| 天香天堂免费观看电视剧| 《火车服务》免费观看| 妈妈你真棒里面的插曲叫什么 | 麻豆传媒| 母与子免费观看大全电视剧| 原声舌吻| 扌暴辶鬲和扌暴辶的区别| 免费观看已满十八岁电视剧彩漫画| 丰满的儿女小月的身世与背景介绍 | 第1章厨房春潮的羞耻| 被室友男朋友认错后BY阿司匹林| 美国禁忌| 妈妈的闺蜜| 年轻的保姆| 韩剧《酒醉热吻》| 扌击辶鬲的小说父女| 快乐公媳1-36集全免费看| 今天的高清视频在线观看高清 | 胬肉(产乳)| 成全电影免费观看完整在线播放高..| 粗大挺进亲女小雅小滨| 老师和学生深入交流人生奥秘| 李丽珍唯一一部打真军电影| 夸克浏览器APP官方下载正版| 水兵| 欧美产品和日韩产品的区别| 《炸裂吧!巨棒》免费阅读漫画| 《好好疼爱里面》免费看| 《蜜桃成熟时1997》主题曲歌..| 妈妈你真棒里面的插曲叫什么| 交换老公弄了几次高潮| 来吧儿子妈妈是纯还是混 | 挪威的森林截了一段3分钟| 双男主GAI免费观看网站