定义一个函数非常简单,但是怎么定义一个函数,需要什么参数,怎么去调用却是我们需要去思考的问题。
如同大多数语言一样(如 Java),Python 也提供了多种参数的设定(如:默认值参数、关键字参数、形参等)。使用这些参数定义出来的代码,可以让我们适应不同的开放场景,也能简化我们的代码开发工作。
默认值参数
我们创建一个函数,定义参数中一个或多个赋予默认值后,我们可以使用比允许的更少的参数去调用此函数,举个例子(注意:以下代码都使用 python3.7 版本):
1 |
|
如上所示,我们可以使用一个或多个参数去调用此函数,我们实际生产中,很多情况下会赋予函数参数默认值的情形,因此,合理使用此种参数形式可以简化我们很多工作量。
重要:使用默认值参数时,如果我们的默认值是一个可变对象时,我们调用函数可能出现不符合我们预期的结果。如下:
1 |
|
这是由于函数在初始化时,默认值只会执行一次,所以在默认值为可变对象(列表、字典以及大多数类实例),我们可以如下操作:
1 |
|
可变参数
可变参数也就是我们对于函数中定义的参数是可以一个或多个可以变化的,其中 *args
代表着可以传入一个 list 或者 tuple, **args
代表着可以传入一个 dict。举个例子:
1 |
|
我们还可以使用下面的方式进行调用,得到上面相同的结果:
1 |
|
以上其实是 python 的解包操作,和 java 类似。
关键字参数
关键字参数允许你调用函数时传入0个或任意个含参数名的参数,这样可以让我们灵活的去进行参数的调用。举个例子:
1 |
|
注意不可以重复传值,否则会报如下错误:
1 |
|
总结
本节主要简单的介绍了 python 中函数参数的使用,设定的方式可以配合使用,但是也不要过多的去设计,否则会造成函数的可读性变的很差。