python的函数参数类型比较丰富,而且用法相对比较复杂,今天我们介绍几种简单常用的。
1、位置参数
位置参数最简单了,就是按照位置关系一一对应就好了,也是我们最最常用的,但是要注意的是各个参数必须按顺序对应,不多说,看下面这段代码就好了。
2、默认参数
默认参数及在函数的定义的时候就给了个默认值,在函数调用的时候可以不传这个默认参数,比如我们要计算 m-n 之间的正整数之和,我们可以分别给定 m 和 n 两个默认值 1 和 100,这样我们再调用该函数的时候即使不传任何参数,该函数也会使用默认值来计算 1-100 之间的正整数之和。
在使用默认参数的时候要特别注意的一点是,默认参数必须要指向不可变对象,比如数组、字典这些都是可变对象,是不能被用作默认参数的,至于为什么,这里不细说了,大家先记住就好,看下面这个例子。
3、可变参数
可变参数是指参数的个数是可变化的,可以是 0 个,可以是 1 个,也可以是多个,可变参数在定义的时候用符号 * 表示,而且在函数被调用的时候参数会被组装成一个 tuple (类似 list 数组的一种基本数据类型),比如我们要实现一个计算多个数字的平方和,多个数字即可以被当成一个可变参数传过去,具体看下面的代码。
4、关键字参数
关键字参数和可变参数类似,参数的个数都是可变的,所以也常被称作可变关键字参数,但是和可变参数的区别在于关键字参数在调用的时候会被组装成一个字典 dict ,而且参数是带参数名的,关键字参数在定义的时候用两个符号 ** 表示,和可变参数差不多,看下下面的具体代码就行。
5、其实还有一种命名关键字参数,由于用起来稍微复杂些,这里暂且不做介绍了,有兴趣的可以自行去了解下。
既然有这么多种参数类型,那么当这些参数被混合使用的时候是怎么的呢?
首先记住一个大原则,就是参数的顺序原则:位置参数、默认参数、可变参数、命名关键字参数、关键字参数,在定义函数的时候一定要严格按照这个顺序来定义函数参数,否则都不能 python 正确解析,再一个就是定义函数的时候尽量避免多个参数类型混合使用,这样对函数的调用可读性和理解性非常差,实际开发中通常用到一到两种参数类型混合使用就差不多了。
坚持微学习,growing together。
领取专属 10元无门槛券
私享最新 技术干货