定义
- 模块:python语言对代码的一种逻辑组织方式,一个.py文件就称为一个python模块,里面可以包含变量、函数、类等的定义
- 包:类似java语言,python语言中组织模块的方式是通过包,就是存放模块的一个文件夹,但是要求必须有
__init__.py
文件存在;包下面可以有子包存在,最下一级是模块
使用方式
python类似于go语言,因为有大量的模块才方便了开发,在程序中使用其他人员开发的模块有下面几种方式
- import语句
可以一行导入一个模块
也可以一行导入多个模块import module1 import module2 ...... import moduleN
import module1[,module2[, ... moduleN]]
- from-import语句
实现从一个模块中导入模块的属性(变量、函数、类等),语法如下from module import name1[,name2[, ... nameN]]
- 扩展import语句as
对导入的名称起一个别名,在当前程序中可以使用别名来代替对应导入的名称,在导入名称比较长时比较有用,语法如下import module as aliasName form module import name as aliasName
注意,如果是包下面的模块,则模块名需要使用
包名[.子包名].module
形式;例如xml包结构如下:
itsenlin@itsenlin-PC:/usr/local/lib/python3.8/xml$ tree -L 2
.
├── dom
│ ├── domreg.py
│ ├── expatbuilder.py
│ ├── init.py
│ ├── minicompat.py
│ ├── minidom.py
│ ├── NodeFilter.py
│ ├── pulldom.py
│ └── xmlbuilder.py
├── etree
│ ├── cElementTree.py
│ ├── ElementInclude.py
│ ├── ElementPath.py
│ ├── ElementTree.py
│ └── init.py
├── init.py
├── parsers
│ ├── expat.py
│ └── init.py
└── sax
├── _exceptions.py
├── expatreader.py
├── handler.py
├── init.py
├── saxutils.py
└── xmlreader.py
itsenlin@itsenlin-PC:
例如导入domreg模块,需要使用如下语句
import xml.dom.domreg
常用标准库
os模块
与操作系统接口相关
sys模块
与命令行参数、错误程序输出重定向、退出等 相关操作
re模块
正则表达式相关操作
math模块
与数学运算相关操作
datetime模块
与日期、时间相关的操作
logging椟
与日志记录相关的操作
json包
所有与json格式相关的操作都在json包中实现
xml包
所有与xml格式相关的操作都在xml包中实现
http包和urllib包
与网络相关的操作在http包和urllib包内部实现
注意
-
模块可以被多次导入,但只在第一次导入时模块被
执行
,也即被导入模块的顶层代码被执行,这就使用__name__
属性,参见基础语法中的模块
一节 -
在工程比较大时,有可能会出现循环导入的情况,即a模块中导入b模块,b模块中又导入了a模块;会导致
ImportError
错误,一般通过架构设计避免这种情况;或者其中一个模块中对应import
语句放在函数内部或者文件末尾来解决,要视情况而定
网友评论