使用 def 语句定义函数是所有程序的基础。前几篇文章里的代码都有用到函数,在这篇文章里对函数详细讲解一下定义与使用模式。

包括的内容有:

1、 任意数量参数

2、 强制关键字参数

3、 返回多个值的函数

4、 定义有默认参数的函数

下面来分别介绍一下。

可接受任意数量参数的函数

有时候我们定义一个函数,但又不确定参数个数的时候,就可以定义一个任意数量参数的函数,在定义的时候可以使用"*"(星号)定义函数。例如:

python学习之路(11):python中函数的定义详解「1」

在上面例子中传入的第一个参数给了函数的first。后面传入的几个参数被组成一个元组给了函数的second。

上面的函数加个"*",传入的多个参数被组成了元组,如果加"**"(2个星号)的话,就可以传任意数量的关键字。例如:

python学习之路(11):python中函数的定义详解「1」

上面代码中,传入的多个关键字参数会被组成一个字典。

也可以组合使用,例如:

python学习之路(11):python中函数的定义详解「1」

只接受关键字参数的函数

关键字参数就是调用函数时,传入参数的写法为attr='值'的形式。我们可以在定义函数的时候强制在调用函数时只能传入关键字的形式,将强制关键字参数放到某个 * 参数或者单个 * 后面就能达到这种效果。比如:

python学习之路(11):python中函数的定义详解「1」

不按强制要求就会报错:

python学习之路(11):python中函数的定义详解「1」python学习之路(11):python中函数的定义详解「1」

强制参数形式,不仅仅是强制形式而已,而且连关键字名称也是强制的,如上面函数中,强制参数为name。所以调用的时候也要写成name="xxxx"。不能写成其他,如:xingmin="xxxx"。

返回多个值的函数

为了能返回多个值,函数直接 return 一个元组就行了。例如:

python学习之路(11):python中函数的定义详解「1」

把返回的多个值给其他变量:

python学习之路(11):python中函数的定义详解「1」

定义有默认参数的函数

定义一个有可选参数的函数是非常简单的,直接在函数定义中给参数指定一个默认值,并放到参数列表最后就行了。例如:

python学习之路(11):python中函数的定义详解「1」

在上面例子中,我只传了一个参数,所以输出第二个参数会输出函数定义的默认值10。

如果第二个参数也传了则会输出传入的值,例如:

python学习之路(11):python中函数的定义详解「1」

现在学习函数的知识只学习到这里,所以暂时记录这些。函数的用法还有很多,等学习到了再来记录一下。