
Python中函数的参数问题有点复杂,主要是因为参数类型问题导致的情况比较多,下面来分析一下。
参数类型:缺省参数,关键字参数,不定长位置参数,不定长关键字参数。
其实总共可以分为位置参数和关键字参数,因为位置参数被放在list里面,关键字参数放在dict里面,Python在解读的时候首先处理list,没有遇到关键字就append到list里面,遇到关键字了,就开始做dict直到结束,所以,位置参数必须放在关键字参数前面。
这里总结出三个模型:
1:不存在缺省函数时:
1 2 3 4 5 6 7 |
|
运行结果:
1 2 3 4 5 |
|
2:存在缺省参数,参数取默认值,(缺省参数放在args后面)*
1 2 3 4 5 6 7 8 |
|
运行结果:
1 2 3 |
|
3:存在缺省参数,参数不取默认值,(缺省参数放在args前面)*
1 2 3 4 5 6 7 8 |
|
运行结果:
1 2 3 4 5 6 |
|
总结:
从上面也看出来了,其实基本顺序就是位置参数--->关键字参数,然后就是缺省参数在 *args前后的问题了。
还有一点,前面已经说过,关键字参数被保存为字典类型,也就是无序的,但是 **kwargs 需要放在最后!
众多python培训视频,尽在python学习网,欢迎在线学习!
本文转自:https://www.jianshu.com/p/625a400b563d