在python中,模块是代码组织的一种方式,把功能相近的函数放到一个文件中,一个py文件就是一个模块module。
自定义模块和自定义模块!!!
模块名就是文件名去掉后缀py,好处是:
1、提高代码的可复用,可维护性。一个模块编写完毕后,可以很方便的在其他项目中导入
2、解决了命名冲突,不同模块中相同的命名不会冲突
一、导入
1、导入模块 import、from ... import ...、from ...import *
2、使用模块中的函数---》模块名.变量、模块名.函数、模块名.类
3、from 模块名 import * 可以导入所有内容,但是要限制获取的内容,可以在模块中使用__all__=[使用 * 可以访问的内容]
4、无论是import还是from的形式,都会将模块内容进行加载。如果不希望其进行调用,就会用到__name__。
在自己模块里__name__叫__main__
在其他模块中通过导入的方式调用的话:name:模块名。
二、包与文件夹
文件夹:一般存放非py文件
包:一般存放py文件
三、 init .py
1、每次导入时,会默认先执行,进行初始化加载
2、此文件的函数,变量等的访问,只需要通过包名.函数...
3、结合__all__ = [通过 * 可以访问的模块]
四、循环导入
概念:在A模块导入B模块,在B模块导入A模块
产生场景:大型的项目中,需要很多py文件,由于架构不当,可能会出现模块之间的相互引用。
避免产生死锁(循环导入):
1、重新架构
2、将导入语句放到函数里面
3、把导入语句放在模块的最后
五、模块导入的搜索顺序
1、当前目录
2、如果不在当前目录,python则搜索在shell变量 PYTHONPATH下的每个目录
3、如果都找不到,python会查看默认路径。UNIX下,默认路径一般为/usr/local/lib/python.
模块搜索路径存储在system没款的sys.path变量中。变量里面包含当前目录,PYTHONPATH和由安装过程决定的默认目录。