Python中模块与包

时间:2019-02-15
本文章向大家介绍Python中模块与包,主要包括Python中模块与包使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

一、模块导入

1. 定义

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

  • 模块让你能够有逻辑地组织你的 Python 代码段。

  • 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

  • 模块能定义函数,类和变量,模块里也能包含可执行的代码。

包括:内置模块,自定义模块,第三方模块;

2. 作用

  • 最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。
    当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,
    包括Python内置的模块和来自第三方的模块

  • 使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

3. 模块导入

import

import导入模块执行的操作:

  • 产生一个新的名称空间;
  • 在新建的名称空间俩面执行模块(.py)的内容
  • 拿到了一个模块名, 执行模块文件产生的名称空间.

对于导入的模块重命名

### import .... as ...

从模块里面导入函数, 变量, 装饰器等…

### from .... import ....
from .... import ..... as ....

4. 解决问题

问题: 导入模块时, 模块里面执行代码结果也会显示
解决方法:

    __name__, 所在文件没有当作模块导入是, 结果为__main__;
    __name__, 所在文件被当作模块导入是, 结果为模块的名称;

判断模块是否被导入, 如果没有被导入, 则执行下面的代码.

if __name__ == "__main__":
    print("这是写好的模块里面的显示.......")
    print(timeit(hello))
    print(__name__)

5. __all__决定用来控制from xxx import *导入的内容

6. 模块的分类

  • 内置模块(random, string…)
  • 自定义模块(自己写的模块)
  • 第三方模块(别人写好的模块)

7. 如何安装第三方模块

  • pip3 install 模块名
  • 通过pycharm安装模块

8.模块的默认搜索路径

模块的查找顺序:

 内存中已经加载的模块 ====>  内置模块  =====> sys.path目录里面的模块

内存中已经加载的模块 :

 sys.modules查看, python解释器启动式默认会加载的模块内容.

注意:

 自定义模块千万不要跟内置模块冲突.

9.包

如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python 又引入了按目录来组织模块的方法,称为包(Package)

创建包的步骤:

创建一目录为包名;
在该文件夹下创建__init__.py文件存放包的信息,该文件可以为空;
根据需要存放脚本文件,已编译的扩展及子包;
可以用import,import as,from import等语句导入模块和包