继续整理python------模块和包

83 阅读2分钟

在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和由安装过程决定的默认目录。