python 函数 形参前带*或者两个星** 收集元组或者字典,实参前带星*或者两个星** 解开序列或者字典
函数的形参前面带一个星*,代表着不定长参数,实际上是收集了不定长的实参,作为一个元组。
形参前面带两个星**,代表可以接收不定长参数,并且调用该函数时实参要指定参数名,实际上是收集了一个不定键个数的字典。
实参前带一个星*,表示解开当前的序列,再做为参数传递。
实参前带两个星**,表示解开当前的字典,再作为参数传递,字典的键key要和调用的函数的形参名要保持一致,不然会报错。
1 def fun1(*parameter): 2 print(type(parameter)) 3 print(parameter) 4 5 def fun2(**parameter): 6 print(type(parameter)) 7 print(parameter) 8 9 def fun3(a,b): 10 print(type(a),type(b)) 11 print(a,b) 12 13 fun1(1,2,3) 14 print('---------------') 15 fun2(x=1,y=2,z=3) 16 print('===============') 17 tuple1 = (2,4) 18 list1 = [2,4] 19 dict1 = {'a':2,'b':4} 20 fun3(*tuple1) 21 print('---------------') 22 fun3(*list1) 23 print('===============') 24 fun3(**dict1)
运行结果:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?