模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块。
执行步骤:
1、在python模块加载路径中查找相应的模块文件。
2、将模块文件编译成中间代码。
3、执行模块文件中的代码。
1、内置模块内置模块也叫标准库,比如random,time
查看所有内置模块:
2、第三方模块第三方模块也叫第三方库,通过包管理工具pip安装。
安装命令:pip install 模块名
例:
3、自定义模块自己在项目中定义的模块,模块名要遵循Python变量命名规范,不要使用中文、特殊字符。
二、模块的使用 1、import 模块名使用import导入模块,格式:import 模块名
2、导入自定义模块导入自定义模块时,py文件必须要在同一目录下
3、from...import..from...import..,从模块中导入指定的部分。
from...import..导入自定义模块
4、模块起别名 as格式:import 模块 as 模块别名
5、导入多模块 三、过滤执行代码写法作用:用来控制py文件在不同的应用场景下执行的不同的逻辑。
当文件被当作脚本执行时:__name__等于'__main__',当文件被当作模块导入时__name__等于模块名。
过滤执行代码方式:
if __name__ == '__main__':
执行代码
当导入text模块文件时,运行此模块文件,if__name__=='__main__'下的代码被保护起来,运行不了。
四、包的使用
概念: 包就是项目结构中的文件夹/目录,包含有__init__.py文件的文件夹
作用: 包用于将不用的模块进行分类管理, 包本身不具有具体的含义, 仅用于文件分层管理
注意:
1、import导入包时,首先执行__init__.py文件的代码
2、不建议在init中写入python模块,尽量保证init内容简单
1、创建一个包1.1、在项目文件下鼠标点击右键——>新建——>Python Package
1.2、给包命名,千万不要以模块的名字命名
2、包的使用例子 2.1 在包下分别创建text.py和login.py文件
2.2 在Day9.py文件下导包使用
下图的代码运行逻辑:先执行First_Package包下__init__.py文件下的代码,再执行text.py文件下res()函数。
2.3 __all__=[]的使用__all__=[],可以控制要引入的东西(模块、函数、类等),通常在__init__.py文件下写入
五、递归函数如果一个函数在内部不调用其它的函数,而是自己本身的话,这个函数就递归函数。
递归函数:
1、必须有一个明确的结束条件
2、每进行更深一层的递归时,问题规模相比上次递归都要有所减少
3、相邻两次重复之间有紧密的联系
举例:
下图的代码逻辑:
第一次:4 + func(3)
第二次:4 + 3 + func(2)
第三次:4 + 3 + 2 + func(1)
在func(1)中,因为n==1,所以返回值1,代码结束,最终变成:4 + 3 + 2 + 1,结果为10
六、闭包两个函数的嵌套, 内部函数使用到了外部函数的变量, 这个现象就可以称之为产生闭包。
构成条件:
1、函数中嵌套了一个函数
2、内层函数使用了外层函数的变量
3、外层函数的返回值时内层函数的函数名
也可写成:outter()()
注意:虽然每次调用内函数,会开启一个函数,执行后消亡,但是闭包变量实际只有一份,每次使用内函数都在使用同一份闭包变量。
七、装饰器(语法糖用法、设置多个装饰器)装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。
1、装饰器:增加额外功能 2、语法糖的使用语法糖用法:
@装饰器名称(放到需要装饰的函数的头上即可)
3、多个装饰器



