Python:函数参数类型和排序的总结
发布时间:2025-04-06 15:41:18

Python中函数的参数问题有点复杂,主要是因为参数类型问题引起的情况比较多,下面就来分析一下。
参数类型:缺失参数、关键字参数、不定长位置参数、不定长关键字参数。
事实上,由于位置参数被放置在list中,关键字参数被放置在dict中,Python在解读时首先处理list,并且在没有遇到关键字的情况下将append放入list中,当遇到关键字时,就开始dict,直到结束,因此,位置参数必须放在关键字参数前面。
以下是三个模型的总结:
1:没有缺省函数:
deftest(a,*args,c,d=3,**kwargs): print(a) print(args) print(c) print(d) print(kwargs) test(1,2,3,4,c=1,d=4,e=11,f=22)
运行结果:
1
(2,3,4)
1
4
{'e':11,'f':22}2:存在遗漏参数,参数取默认值,(遗漏参数放在args后面)*
deftest(a,*args,b=1,c,d=3,**kwargs): print(a) print(args) print(b) print(c) print(d) print(kwargs) test(1,2,3,4,c=1,d=4,e=11,f=22,h=66)
运行结果:
(2,3,4)
1
{'e':11,'f':22,'h':66}3:存在缺省参数,参数不取默认值,(缺省参数放在args前面)*
deftest(a,b=1,*args,c,d=3,**kwargs): print(a) print(b) print(args) print(c) print(d) print(kwargs) test(1,2,3,4,c=1,d=4,e=11,f=22,h=66)
运行结果:
1
2
(3,4)
1
4
{'f':22,'e':11,'h':66}总结:
从上面也可以看出,基本顺序是位置参数--->关键字参数,然后是缺失参数 *args前后的问题。
还有一点,前面说过,关键词参数保存为字典类型,即无序,但是 **kwargs 需要放在最后!
python培训视频众多,全部在python学习网,欢迎在线学习!
本文转自:https://www.jianshu.com/p/625a400b563d
