【Python系列】 6. 模块
01 模块的概念
模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。
每一个文件都是一个模块,并且模块导入其他模块之后就可以使用导入模块定义的变量名。
python的模块导入与c 中的#include不一样。它不只是插入文件而已,导入其实是运行时的运算;
程序第一次导入指定文件时,会执行三个步骤:
1. 找到模块文件
2. 编译成字节码(需要时)
3. 执行模块的代码来创建其所定义的对象
模块会存储到一个名为sys.modules的表中
02 定义模块
只要文本编辑器,把一些Python 代码输入到文本中,然后以“.py"为后缀名进行保存,任何此类文件都会被自动认为是Python模块
包的使用
import 模块名 as 变量名
import 使一个变量名引用整个模块对象
from 模块名 import * 或具体属性
from dir1.dir2.mod import z
或
import dir1.dir2.mod as mod
from 会把变量名复制到另一个作用域,所以它就可以让我们直接在脚本中使用复制后的变量名,而不是需要通过模块。
注:
import 与 from 是赋值语句 (隐性的赋值语句)
import 是将整个模块对象赋值给一个变量名
from 将一个或多个变量名赋值给另一个模块中同名的对象
03 模块包
包导入语句的路径中每个目录内部都必须有__init__.py文件(内容可以为空)
模块的内置属性
每一个模块都有一个名为__name__的内置属性,python会自动设置该属性:
如果文件是以顶层程序文件执行,在启动时,__name__就会设置为字符串'__main__'
如果文件被导入,__name__就会改设成客户端所了解的模块名
具体的模块
sys模块
https://blog.csdn.net/qq_38526635/article/details/81739321
日期与时间
https://www.cnblogs.com/wang-yc/p/5628172.html
Python 提供了一个 time 和 calendar 模块可以用于格式化日期和时间
Math模块
http://blog.csdn.net/iamaiearner/article/details/9381347
OS模块
https://www.cnblogs.com/kaituorensheng/archive/2013/03/18/2965766.html
http://www.runoob.com/python3/python3-os-file-methods.html
json模块
http://www.runoob.com/python3/python3-json.html
https://www.cnblogs.com/wang-yc/p/5616187.html
request模块
http://blog.csdn.net/qq_878799579/article/details/73956344