python的模块定义及分类

一、什么是模块?

  储着很多常用的功能的py文件,就是模块。 模块就是文件,存放一堆常用的函数。

  一个函数就是一个功能,那么把一些常用的函数放在一个py文件中,这个文件就称之为模块,模块就是一些常用功能的集合体。

二、为什么要使用模块?

  1、从文件级别组织程序,更方便管理。

    随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用。  

  2、拿来主义,提升开发效率。

    同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率,避免重复造轮子。

三、模块的分类

  Python语言中,模块分为三类:

    第一类:内置模块,也叫做标准库。此类模块就是python解释器给你提供的,比如我们之前见过的time模块,os模块。标准库的模块非常多(200多个,每个模块又有很多功能)。

      第二类:第三方模块,第三方库。一些python大神写的非常好用的模块,必须通过pip install 指令安装的模块,比如BeautfulSoup, Django,等等。大概有6000多个。

      第三类:自定义模块。我们自己在项目中定义的一些模块。

四、import与from....import的区别

  import:中文就是导入的意思

    例如:import os

  from...import..:从某个模块(文件)中导入某个函数

    例如:from view import Book

  如何解决重复导入:

    针对同一个模块很import多次,为了防止你重复导入,python的优化手段是:第一次导入后就将模块名加载到内存了,后续的import语句仅是对已经加载到内存中的模块对象增加了一次引用,不会重新执行模块内的语句。

五、py文件的功能

  python模块的文件名后缀就是py。例如:test.py

  编写好的一个python文件可以有两种用途:
     一:脚本,一个文件就是整个程序,用来被执行(比如你之前写的模拟博客园登录那个作业等)
     二:模块,文件中存放着一堆功能,用来被导入使用

  python为我们内置了全局变量__name__,
     当文件被当做脚本执行时:__name__ 等于'__main__'
     当文件被当做模块导入时:__name__等于模块名

  作用:用来控制.py文件在不同的应用场景下执行不同的逻辑

六、模块的应用规则

  Python中引用模块是按照一定的规则以及顺序去寻找的。

    这个查询顺序为:先从内存中已经加载的模块进行寻找找不到再从内置模块中寻找,内置模块如果也没有,最后去sys.path中路径包含的模块中寻找。

    它只会按照这个顺序从这些指定的地方去寻找,如果最终都没有找到,那么就会报错。

        内存中已经加载的模块->内置模块->sys.path路径中包含的模块

  模块的查找顺序

  1. 在第一次导入某个模块时(比如tbjx),会先检查该模块是否已经被加载到内存中(当前执行文件的名称空间对应的内存),如果有则直接引用(ps:python解释器在启动时会自动加载一些模块到内存中,可以使用sys.modules查看)

  2. 如果没有,解释器则会查找同名的内置模块

  3. 如果还没有找到就从sys.path给出的目录列表中依次寻找tbjx.py文件。

  特别注意的是:我们自定义的模块名不应该与系统内置模块重名。

原文地址:https://www.cnblogs.com/youhongliang/p/12231612.html