python 函数 形参前带*或者两个星** 收集元组或者字典,实参前带星*或者两个星** 解开序列或者字典
函数的形参前面带一个星*,代表着不定长参数,实际上是收集了不定长的实参,作为一个元组。
形参前面带两个星**,代表可以接收不定长参数,并且调用该函数时实参要指定参数名,实际上是收集了一个不定键个数的字典。
实参前带一个星*,表示解开当前的序列,再做为参数传递。
实参前带两个星**,表示解开当前的字典,再作为参数传递,字典的键key要和调用的函数的形参名要保持一致,不然会报错。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | def fun1( * parameter): print ( type (parameter)) print (parameter) def fun2( * * parameter): print ( type (parameter)) print (parameter) def fun3(a,b): print ( type (a), type (b)) print (a,b) fun1( 1 , 2 , 3 ) print ( '---------------' ) fun2(x = 1 ,y = 2 ,z = 3 ) print ( '===============' ) tuple1 = ( 2 , 4 ) list1 = [ 2 , 4 ] dict1 = { 'a' : 2 , 'b' : 4 } fun3( * tuple1) print ( '---------------' ) fun3( * list1) print ( '===============' ) fun3( * * dict1) |
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!