函数
-
什么是函数
函数是指将一组语句的集合通过一个名字(函数名)封装起来,函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。 -
函数的定义
在Python中,定义一个函数要使用def语句,例如: -
要调用一个函数,需要知道函数的名称和参数,上述函数的调用方法是calc(3,5),需要传入参数,
-
函数的返回值
函数体内部的语句在执行时,一旦执行到return时,函数就执行完毕,并将结果返回, 也可以理解为 return 语句代表着函数的结束。如果没有return语句,函数执行完毕后也会返回结果,只是结果为None -
函数的特性
a.减少重复代码
b.程序变得可扩展
c.程序变得容易维护
函数的参数
定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了。对于函数的调用者来说,只需要知道如何传递正确的参数。python函数中两种类型参数,一种是函数定义里的形参,一种是调用函数时传入的实参。
位置参数
我们写一个计算倍数的函数
对于calc()函数,x、y就是位置参数,当我们调用calc()函数时,必须传入两个参数x、y,传入的参数数量大于小于2,都会报错
默认参数
我们写一个计算倍数的函数,还必须传入两个参数,这种情况下我们可以使用默认参数
函数调用时,可以只传入一个参数,也可以传入两个参数
注意:设置默认参数时,第一位置参数在前,默认参数在后;第二变化小的参数可以设置默认参数
可变参数
在Python函数中,还可以定义可变参数。可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个,会把多传入的参数变成一个元组形式
如果已经有一个list或者tuple,可以通过*把参数传入
关键字参数
位置参数调用必须按照顺序传入参数,如果不按照位置可以使用关键字参数指定传入的参数
非固定关键字参数
非固定关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict
同样的相对于可变参数可以传入list、tuple,非固定关键字参数可以传入dict
命名关键字参数
非固定关键字参数可以传入传入不受限制的关键字参数,如果要限制关键字参数的名字,就可以用命名关键字参数,例如,传入参数时,只接受sex作为关键字参数,定义方法如下:
参数组合
在Python中定义函数,可以单个使用某种类型的参数,也可以组合使用
注意以下几点:
-
位置参数在前,默认参数在后
-
默认参数一定要用不可变对象
-
定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*,否则定义的将是位置参数