函数
1、 应用函数
2、 可变参数、命名参数、万能参数
3、 匿名函数(lambda)
Lambda表达式
Lambda:输出()
优点:简化代码书写
缺点:增加代码的复杂度,降低了代码的可读性
4、 闭包()
5、 递归
递归的必要条件:
(1)、函数自身调用自身
(2)、要有终止条件(死循环)
https://files.jb51.net/file_images/article/201904/2019042609305570.png
利用递归实现阶乘的原理过程:
https://files.jb51.net/file_images/article/201904/2019042609305572.png
6、 偏函数
7、 函数作为参数传递
8、 函数调用全局变量
9、 全局变量和局部变量
(1)、当全局变量与局部变量同名时,优先使用局部变量
(2)、对不可变类型变量重新赋值,实际上是重新创建一个不可变类型对象,并将原来的变量指向新创建的对象。如果没有其他变量引用原有对象的话(即:引用计数为0),原有对象就会被回收。
(3)、可变类型的全局变量:函数内修改可变类型的全局变量,可以不使用global关键字
装饰器(函数的深层次使用)
一、 引用传递
引用传递,实质是在传递内存地址
二、 函数默认值
(在python中,可以为函数的参数给予默认值,一旦某个存在默认值,那么如果在调用的时候,不传递这个参数,则按照默认值。减少调用时的麻烦)
注意:在定义函数时,如果存在有默认值得参数,一定要写在没有默认值得参数后面,否则在调用时,无法确定参数到底传给哪个参数
三、 全局变量和局部变量
全局变量:就是定义在py文件中,能被任何函数、类能够正常访问的变量。
局部变量:定义在函数内部变量,叫做局部变量
注意:函数本身是对象,存储在堆中,但是函数的调用实在栈中调用,压栈
假如要在函数内操作(增删改)一个全局变量,需要首先申明这个全局变量,global关键字
四、 参数问题
1、 默认值参数
2、 可变参数
3、 命名参数
4、 万能参数
在python中,函数是对象,函数中参数任何类型
函数的参数可以是函数