模块的概念:
在计算机程序开发过程中,随着程序代码越来越多,在一个文件里代码就会越来越长,不利于维护。
为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样每个文件包含的代码就相对较少。
一个 .py文件就称为一个模块(module)
好处:
大大提高了代码的可维护性;
代码的重用性
代码的保存性
模块种类:
python标准库
第三方模块
应用程序自定义模块
模块导入方法:
1:improt语句
2:from....improt...,...语句
3:from....improt * 语句
模块搜索路径:
python解释器在启动时会自动加载一些模块,可以使用 sys.modules 查看
在第一次导入某个模块时,会先检查该模块是否已经被加载到内存中,如果有则直接引用。如果没有,解释器则会查找同名的内置模块,如果还没有找到就从sys.path给出的目录列表中一次寻找模块文件。
顺序是:内存中已经加载的模块-->内置模块-->sys.path路径中包含的模块
包:
包是一种通过使用 ‘.模块名’ 来组织python模块名称空间的方式。
1,无论是import形式还是from...import
形式,凡是在导入语句中遇到带点的,都要在第一次时间提高警觉:这是关于包才有的导入语法。
2,包是目录级的(文件夹级),文件是用来用来组成py文件
(包的本质就是一个包含
__init__.py 文件的目录)
3:import导入文件时,产生名称空间中的名字来源于文件,import包,产生的名称空间的名字同样来源于文件,即包下的
__init__.py,导入包本质就是在导入该文件
强调:
1,在python3中,即使包下没有__init__.py文件,import包仍然不会报错,而在python2中,包下一定要有该文件,否则import包会报错。
2,创建包的目的不是为了运行,而是被导入使用,记住,包只是模块的一种形式而已,包即模块