偏函数
简单来讲偏函数的作用就是把函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新的函数会更简单。
导入functools 模块 import functools
int3 = functools.partial(int2,100)
变量的作用域:
变量起作用的范围,程序中的变量并不是在任意的地方都能进行访问,访问的范围取决于它在哪里定义的【赋值的位置】
局部作用域:L(local)
在函数中定义的变量,每当函数被调用的时候它都会产生一个新的作用域,这个新的作用域我们称之为局部作用域
在局部作用域中定义的变量,我们称之为局部变量,局部变量起作用的范围在当前函数范围内。
嵌套作用域:又称函数作用域
全局作用域:
在模块中定义的变量,并且定义在函数体外的变量,他们所产生的作用域叫做全局作用域,这个变量我们称之为全局变量,全局变量作用的范围整个.py文件。
内置作用域:
系统内部自己定义的变量产生的作用域,叫做内置作用域,起作用的范围,所有的.py文件。
搜索变量的优先级:
局部作用域>嵌套作用域>全局作用域>内置作用域
当这几个作用域中都不存在的时候则报错
关键字globa 声明全局变量
注意:在局部作用域中,不能直接更改全局变量的值,若有需要在局部作用域中更改全局变量,则需要在更改之前对此变量进行声明,使用关键字global进行声明,声明之后便可更改。
注意:在python中,只有模块.类以及函数【def,lambda】这些才会引入新的作用域,而其他的语句块比如:if/else ,while/for,try/except 这些语句块不会引入新的作用域,也就是说在这些语句中定义的变量,在外部仍然可以使用。
回调函数:
将函数作为参数传递到另外一个函数中,这个被传递进去,后来又被调用的函数,我们称之为回调函数。
返回函数:
把函数作为返回值返回的时候,我们可以称这个函数为返回函数。
闭包:
在外函数的内部定义了一个内函数,内函数使用了外函数的临时变量,外函数的返回值是内函数的引用【内函数的函数名】,这时候就构成了一个闭包
一般情况下当函数执行完毕,函数中所有的东西都会被释放掉还给内存,这时候局部变·量也会消失,但是当外函数结束的时候,发现自己还有临时变量在内函数中还会使用。,此时外函数会将自己的临时变量绑定给内函数,自己再结束。
装饰器一定是闭包,但是闭包不一定是装饰器。
函数中的变量在执行的时候被创建,在执行结束的时候被销毁
递归函数:
函数在内部是可以调用其他函数的,当被调用的函数是函数自己本身的时候,我们称这个函数为递归函数。
1.写出临界条件
2.找出这一次和上一次的关系
3.假设函数可以使用,根据上一次的值,求出本次i的结果。
使用递归函数的时候,一定要注意栈溢出的情况。一般情况下不建议使用递归函数。
os功能模块
import os
绝对路径:
在Windows中以盘符开头的或者是\开头的我们统称为绝对路径
在linux或者mac中以“/”开头的为绝对路径
相对路径:
在window中以.或者…或者直接以文件开头,我们称之为相对路径
在linux与mac中与windows表示的相对路径是相同的
os.getcwd() 获取当前文件所在目录绝对路径
os.listdir() 获取当前目录下所有文件的文件名
os.listdir((path)) 获取指定目录下所有文件的文件名,若不指定path则获取当前目录下
. 代表当前目录
… 代表上一级目录
os.path.join(path,paths)\ 拼接
os.path.isdir(path) 判断是否为目录
os.path.isfile(path) 判断是否为文件
os.remove(path) 删除指定的文件,参数必须给
os.mkdir() 创建指定的目录
os.rmdir(path) 删除指定的空目录
os.removedirs(path)
递归删除多层空目录【不存在文件】
os.makedirs(path)
递归创建多层空目录
os.chair(path)
切换到指定目录