函数

  1. 什么是函数
    函数是指将一组语句的集合通过一个名字(函数名)封装起来,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

  2. 函数的定义
    在Python中,定义一个函数要使用def语句,例如:

  3. python函数

  4. 要调用一个函数,需要知道函数的名称和参数,上述函数的调用方法是calc(3,5),需要传入参数,

  5. 函数的返回值
    函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回, 也可以理解为 return 语句代表着函数的结束。如果没有return语句,函数执行完毕后也会返回结果,只是结果为None

  6. 函数的特性
    a.减少重复代码
    b.程序变得可扩展
    c.程序变得容易维护

函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数。python函数中两种类型参数,一种是函数定义里的形参,一种是调用函数时传入的实参。

python函数


位置参数

我们写一个计算倍数的函数

python函数

对于calc()函数,x、y就是位置参数,当我们调用calc()函数时,必须传入两个参数x、y,传入的参数数量大于小于2,都会报错


默认参数

我们写一个计算倍数的函数,还必须传入两个参数,这种情况下我们可以使用默认参数

python函数

指定y的值默认是2

函数调用时,可以只传入一个参数,也可以传入两个参数

python函数

注意:设置默认参数时,第一位置参数在前,默认参数在后;第二变化小的参数可以设置默认参数


可变参数

在Python函数中,还可以定义可变参数。可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个,会把多传入的参数变成一个元组形式

python函数

*args

如果已经有一个list或者tuple,可以通过*把参数传入

python函数

函数可以把list或tuple当做参数传入


关键字参数

位置参数调用必须按照顺序传入参数,如果不按照位置可以使用关键字参数指定传入的参数

python函数

关键字调用


非固定关键字参数

非固定关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

python函数

**kwargs

同样的相对于可变参数可以传入list、tuple,非固定关键字参数可以传入dict

python函数

可以把字典当做参数传入


命名关键字参数

非固定关键字参数可以传入传入不受限制的关键字参数,如果要限制关键字参数的名字,就可以用命名关键字参数,例如,传入参数时,只接受sex作为关键字参数,定义方法如下:

python函数

命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数,命名关键字参数必须传入参数


参数组合

在Python中定义函数,可以单个使用某种类型的参数,也可以组合使用

注意以下几点:

    1. 位置参数在前,默认参数在后

    2. 默认参数一定要用不可变对象

    3. 定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数