Python中的模块与包的总结

引述:

在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,
越来越不容易维护。
为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件
包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在 Python 中,一个.py
文件就称之为一个模块(Module)。

一.模块的定义

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

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

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

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

二.模块的作用

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

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

三.模块导入的几种方式

  • import ……

     import导入模块执行的操作:
    - 产生一个新的名称空间;
    - 在新建的名称空间俩面执行模块(.py)的内容
    - 拿到了一个模块名, 执行模块文件产生的名称空间.
    
  • import …. as …

     对于导入的模块重命名
    
  • from …. import ….

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

四.解决问题

问题: 导入模块时, 模块里面执行代码结果也会显示
解决方法:
__name__, 所在文件没有当作模块导入是, 结果为__main__;
__name__, 所在文件被当作模块导入是, 结果为模块的名称.

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

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

五.控制导入内容

__all__决定用来控制from xxx import *导入的内容
(是在模块包内设置)

六.模块的分类

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

七.如何安装第三方模块

  • pip3 install + 模块名
  • 通过pycharm安装模块
    . 模块的默认搜索路径

八. 模块的默认搜索路径

模块的查找顺序:

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

内存中已经加载的模块 :

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

注意:

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

猜你喜欢

转载自blog.csdn.net/weixin_41179709/article/details/81941172