模块与包
Posted rongge95500
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模块与包相关的知识,希望对你有一定的参考价值。
模块
定义:一系列功能的集合体。
模块的三种来源:
- 内置模块
- 第三方模块
- 自定义模块
模块的四种格式:
- 使用python编写的.py文件
- 已被编译为共享库或DLL的C或C++扩展
- 把一系列模块组织到一起的文件夹(文件夹下有一个__init__.py的文件,该文件夹称之为包)
- 使用C编写并连接到python解释器的内置模块
为什么要使用模块:
- 使用第三方或内置模块:可以加快开发效率
- 使用自定义的模块:可以减少代码冗余(抽取我们自己程序中要共用的一些功能定义为模块,然后程序的各部分组件都可以去模块中调用共享的功能)
如何使用模块:
大的前提是:要区分开哪个是执行文件,哪个是被导入的模块
例如:文件名是spam.py,模块名就是spam
首次导入模块时:
- 会产生一个模块的名称空间
- 执行模块文件,将执行过程中产生的名字都放到模块的名称空间中
- 在当前执行文件的名称空间中拿到一个模块名,该名字指向模块的名称空间
在之后再次导入模块时,都是直接引用第一次导入的结果,不会重新执行文件
模块之import:
在执行文件中使用模块的语法:模块名.功能名字
例如:从spam模块中导入一个read功能
在执行文件中使用时spam.read就可以
# 可以在一行导入多个模块 import os,sys,.... #(不推荐使用) # 可以为模块起别名(使用import...as...) import spam as sm
import 总结:
- 优点:指名道姓的向某一个名称空间要名字,不会与当前名称空间中的名字冲突
- 缺点:只要使用模块中的名字时都要加前缀,不简洁
模块之from....import....
# 可以在一行导入多个模块 from spam import read1, read2,..... # *代表从被导入模块中拿到所有名字(不推荐使用) from spam import * # 可以为模块起别名(使用from...import...as...) from spam import read as rd
from....import....总结:
- 优点:使用时无需加前缀,更加简洁
- 缺点:容易与当前执行文件中的名字冲突
以上是关于模块与包的主要内容,如果未能解决你的问题,请参考以下文章