(二十一)Python学习之模块初识
(二十一)Python学习之模块初识
一、模块的概念
在Python中,一个.py文件就称之为一个模块(Module);使用模块最大的好处是提高了代码的可维护性。
二、模块的分类
(1)python标准库
(2)第三方模块
(3)应用程序自定义模块
三、模块的导入方法
1.import 语句::
import module1[, module2[,... moduleN]
当我们使用import语句的时候,Python解释器有自己的搜索路径,存在sys.path里。
['', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu',
'/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
注意:在当前目录下存在与要引入模块同名的文件,就会把要引入的模块屏蔽掉。
2.from…import 语句:
from modname import name1[, name2[, ... nameN]]
这个声明不会把整个modulename模块导入到当前的命名空间中,只会将它里面的name1或name2单个引入到执行这个声明的模块的全局符号表。
3.from…import* 语句
from modname import *
导入一个模块中的所有项目。
四、运行本质
首先通过sys.path找到.py文件,然后执行该文件脚本(全部执行),然后将相应的变量名加载到命名空间。
五、包的引入
为了避免模块名冲突,Python引入了按目录来组织模块的方法,称为包(Package);引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。
六、包和普通目录的区别
每一个包目录下面都会有一个__init__.py的文件,这个文件是必须存在的,否则,Python就把这个目录当成普通目录(文件夹),而不是一个包。init.py可以是空文件,也可以有Python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字;调用包就是执行包下的__init__.py文件
七、模块使用小技巧
if __name__=='__main__':
print('ok')
用处:调试代码的时候,在”if name == ‘main’“中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行。