python参数传递时,主要有位置参数和关键字参数。
1. 位置参数:顾名思义,参数的位置顺序很重要,因为是直接根据位置赋值的。
def func1(a, b): print(a,b) # 位置参数,位置顺序很重要 func1(1,2)
2. 关键字参数:首先使得位置不那么重要了,毕竟参数一多,有些人记不住位置也很正常;其次更重要的是可以提供初始值。
def func2(c=1, d=2): print(c,d) # 关键字参数,1. 使得位置不那么重要;2. 可提供初始值 func2() #使用初始值 func2(100,200) #关键字参数也可用位置参数的传递形式 func2(c=100,d=200) #变换位置 func2(d=200,c=200)
3. 位置参数和关键字参数混合时,位置参数必须全部在关键字参数的前面。
def func3(a, b, c=1): print(a,b,c) # 混合使用时,位置参数必须在前面,否则程序会不知道位置参数对应的值是什么 func3(1,2,100) func3(1,2,c=100)
4. 通过单星号 '*',收集位置参数,形成元组,但使用的时候也是有序的。
p = (1,2,) def func4(*para): # 存多个参数,位置参数收集形成元组 print(para) func4(*p) #传递的也是元组形式 func4(*(1,2,))
5. 通过双星号 '**',收集关键字参数,形成字典
arg = {'c':1,'d':2} def func5(**args): # 存多个参数,关键字参数收集形成字典 print(args) print(args['c']) func5(**arg) #传递形式一 func5(**{'c':1,'d':2}) # 二,或者显式传递字典
6. 位置参数和单星号 '*' 收集参数的混合:单星号 '*' 表示收集没有对应位置参数的其他位置参数
def func6(a, b, *para): # 混合位置参数,*表示收集没有对应位置参数的其他位置参数,即从前排到后,多余的位置参数 print(a,b) print('para:',para) func6(1,2,3,4,5)
7. 关键字参数和双星号 '**' 收集参数的混合:同理双星号 '**' 表示收集没有对应关键字参数的其他关键字参数
def func7(c=1, d=2, **args): # 混合关键字参数,**表示收集没有对应关键字参数的其他关键字参数,即多余的关键字参数 print(c,d) print('args:',args) func7(1,d=2,e=3,f=4)
8. 位置参数、关键字参数混合单星号收集参数、双星号收集参数:
def func(a, b, c=1, d=2, *ee, **ff): #混合关键字参数和位置参数:*和** 分别收集多余的位置参数和关键字参数 print(a,b,c,d) print(ee) #元组形式使用 print(ff) #字典形式使用 # func(100,200,300,400,c=500,d=600,e=700,f=800) # TypeError: func() got multiple values for argument 'c',原因是关键字参数也可以按照位置参数传递形式赋值 func(100,200,c=500,d=600,e=700,f=800) func(100,200,300,400,500,600,e=700,f=800) #从前到后多余的参数分别进入元组(单星号)和字典形式(双星号)
TypeError: func() got multiple values for argument:因为关键字参数也是可以像位置参数那样直接传递的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
白云城资源网 Copyright www.dyhadc.com
暂无“Python参数传递及收集机制原理解析”评论...
更新日志
2024年11月08日
2024年11月08日
- 雨林唱片《赏》新曲+精选集SACD版[ISO][2.3G]
- 罗大佑与OK男女合唱团.1995-再会吧!素兰【音乐工厂】【WAV+CUE】
- 草蜢.1993-宝贝对不起(国)【宝丽金】【WAV+CUE】
- 杨培安.2009-抒·情(EP)【擎天娱乐】【WAV+CUE】
- 周慧敏《EndlessDream》[WAV+CUE]
- 彭芳《纯色角3》2007[WAV+CUE]
- 江志丰2008-今生为你[豪记][WAV+CUE]
- 罗大佑1994《恋曲2000》音乐工厂[WAV+CUE][1G]
- 群星《一首歌一个故事》赵英俊某些作品重唱企划[FLAC分轨][1G]
- 群星《网易云英文歌曲播放量TOP100》[MP3][1G]
- 方大同.2024-梦想家TheDreamer【赋音乐】【FLAC分轨】
- 李慧珍.2007-爱死了【华谊兄弟】【WAV+CUE】
- 王大文.2019-国际太空站【环球】【FLAC分轨】
- 群星《2022超好听的十倍音质网络歌曲(163)》U盘音乐[WAV分轨][1.1G]
- 童丽《啼笑姻缘》头版限量编号24K金碟[低速原抓WAV+CUE][1.1G]