day08
1.偏函数
首先导入模块
import functools
偏函数:将函数的某些值固定住,给你返回新的函数,这个函数称为偏函数
newfunc = functool.partial(func,参数)
调用的时候,直接调用newfunc
2.变量作用域
变量作用域:变量作用的范围,程序中的变量并不是在任意位置都能够访问,
访问的范围取决于它辅助的位置【定义的位置】
局部作用域:在函数中定义的变量,每当函数被调用的时候,它都会产生一个新的作用域,
这个新的作用域我们称为局部作用域,在局部作用域定义的变量,称为局部变量
局部变量起作用的范围,就是当前所在的函数。
嵌套作用域:又称函数作用域【调用函数名()()】
函数体中又嵌套了一个函数,外函数的作用域,称为嵌套作用域
全局作用域:在模块中定义的变量,并且是定义在函数体之外的变量,他们产生的作用域,
称为全局作用域
这个变量称为全局变量,全局变量作用的范围,整个.py文件
内置作用域:系统内部定义的变量产生的作用域,称之为内置作用域。
起作用的范围,所有的.py文件
搜素变量的优先级:局部作用域、嵌套作用域、全局作用域、内置作用域
当中这几个作用域都不存在的时候则报错
3.global关键字
注:在局部作用域不能直接更改全局变量的值,若需要在局部作用域更改全局变量,则需要
在更改之前进行声明,使用关键字global
在python中只有模块、类、函数【def、lambda】才会引入新的作用域,而其他语句块则不会
引入新的作用域,在外部依旧可以调用。
4.回调函数:
将函数作为参数传递到另一个函数中,这个被传递进去,后来又被调用的函数。
称为回调函数。【传进去、又被调用、使用】
5.返回函数: 把函数作为返回值的时候,我们把这个函数称为返回函数
6.闭包:
在外函数的内部定义了一个内函数,内函数使用外函数的临时变量,外函数的返回值
是内涵式的引用【内函数的函数名】
在外函数参数列表的变量就是临时变量
特点:
一般情况下当内函数执行完毕,函数中所有的东西都会被释放掉还给内存,这时候
局部变量也会消失,但是当外函数结束的时候发现自己还有临时变量内函数还会使用
此时外函数会将自己的临时变量绑定给内函数,自己结束
函数中的变量在函数调用的时候创建,在函数被调用的时候结束
装饰器一定是闭包,闭包不一定是装饰器
7.递归函数
函数在内部可以调用其他函数,当被调用的函数是自己时候,这个函数就是递归函数
注:使用递归函数的时候,一定要注意栈溢出的情况