一 偏函数
偏函数的作用:
可以将函数中的某些参数固定住,给我们返回一个新的函数,我们的调用的时候调用新的函数,被固定的参数无需传递.
作用:调用函数的时候更加方便
.
functools.partial(func,args)
参数一:要固定的函数的函数名
参数二:要固定的参数.
功能:将要固定的函数的参数给固定住,然后给你返回一个新的函数.
二 变量的作用域
**变量作用域划分:**局部作用域,嵌套作用域,全局作用域,内置作用域
局部变量: 定义在函数体中的变量,作用范围当前函数
全局变量: 定义py文件中,并且定义在函数体[类]外面的变量,我们称之为全局变量
作用范围,当前整个.py文件
内置变量: 系统内部自己定义的 作用范围:所有的.py文件
变量的查询的搜索规则(LEGB法则):
局部作用域>嵌套作用域>全局作用域>内置作用域
当我在局部作用域中,我要更改全局变量的值:
在使用全局的变量的时候,上面使用global关键字先声明:
num1 = 20
def func():
global num1
num1 = 30
什么时候会产生新的作用域?
当使用模块,def,lambda,class定义的时候,这时候会产生新的作用域,而if/else,for,while,try/except 这些语句不会产生新的作用域.
三 回调函数 , 返回函数 , 闭包
回调函数
把函数作为参数传进去,后面又被调用,这传入后来又被调用的函数,我们称为回调函数
例如:装饰器 偏函数
返回函数
当把函数作为返回值返回的时候,我们称这个函数为返回函数
例如:装饰器 偏函数
闭包
在外函数中定义了一个内函数,内函数使用外函数的临时变量,外函数的返回值是内函数的引用,那么这时候构成了一个闭包
一般情况下,函数中定义临时变量在函数调用的结束的时候,会自动被销毁,把空间还给内存,但是在闭包中是一个特殊的存在,当外函数准备结束自己的时候,发现自己的临时变量在内函数中还会使用到,这时候它会将这个临时变量绑定给内函数再自己结束.
例如: 装饰器
四 递归函数
在函数内部可以调用其他的函数,但是若调用的函数是自己本身的时候,
我们称这个函数为递归函数.
递归解决问题的思路:
1.写出临界条件
2.找出这次跟上次的关系
3.假设函数可以使用,调用上一次结果,求出本次结果
使用递归的时候考虑的问题:
1.效率问题
2.递归栈溢出的问题
优点: 定义简单,逻辑清晰
五 os模块
1.获取当前路径 os.getcwd()
2.列举指定目录下[默认当前目录]所有文件 os.listdir(path)
3.获取当前指定路径的绝对路径 os.path.abspath(path)
4.将路径分解为目录与文件部分 os.path.split(path)
5.路径拼接 os.path.join(path,paths)
6.获取路径目录部分 os.path.dirname(path)
7.获取路径的文件部分 os.path.basename(path)
8.获取指定文件的大小 os.path.getsize(path) 只能获取文件大小,目录获取不到,路径不存在则报错
9.判断文件是否存在 os.path.exists(path)
10.判断是否为目录 os.path.isdir(path)
11.判断是否为文件 os.path.isfile(path)
os.remove(path)
功能:删除指定的文件
os.mkdir(path)
功能:创建指定的目录
os.rmdir(path)
功能:删除指定的空目录【只能删除一层】
os.removedirs(path)
功能:递归删除多层空目录【不存在文件】
os.makedirs(path)
功能:递归创建多层空目录
os.chdir(path)
功能:切换到指定的目录