一 什么是模块
模块是一系列功能的集合体,而函数是某一个功能的集合体,因此模块可以看成是一堆函数的集合体.一个py文件内部就可以放一堆函数,因此py文件就可以看成一个模块.
二 模块的四种形式
- 自定义模块:common.py就叫做comm模块
- 第三方模块:需要自己安装,有13万个第三方库,让python无所不能,写库更加简单
- 内置模块:python解释器自带的,不需要安装
- 包:把一系列模块组织到一起的文件夹,含有
__init__
文件
三 为什么要使用模块
- 第三方或内置的模块是一种拿来主义,可以极大地提升开发效率
- 自定义模块,将我们自己的程序用到的公共功能,写入一个python文件,然后程序的各部分组件可以通过导入的方式来引用自定义模块的功能
四 模块的使用方式
一般我们使用import和from...import...导入模块
import
#import time
#time.time()
import导入模块(time)发生的三件事:
- 在内存中生成一个叫time的名称空间
- 运行time.py文件,然后把time.py文件内的名称空间放入time的名称空间内
- 把time的名称空间指向import和from...import.py(当前导入time模块的文件)的名称空间中
使用import time导入的时候,使用方法只能time.方法名(),不能直接方法名
from模块名import具体的功能
# from time import gmtime
# from time import gmtime,time
# from time import * # 所有(等同于import time),不推荐使用,因为很容易造成变量名冲突
# print(gmtime())
# print(time())
from test import * # __all__限制了 from test import *
from test import f3 # __all__不会限制
import test # __all__ 不会限制
from...import导入模块发生的三件事
- 在内存中生成一个叫做time的名称空间
- 运行time.py文件,然后把time.py文件内的名称空间放入time的名称空间内
- 把gmtime方法指向import和from...import.py(当前导入time模块的文件)的名称空间内
import和from...import的异同
相同点:1.两者都会执行模块对应的文件,两者都会产生模块的名称空间
2.两者调用功能时,需要跑到定义时寻找作用域关系,与调用位置无关
不同点:1.import需要加前缀;from..import..不需要加前缀