模块
什么是模块?
一系列相似功能的集合体。一个py文件就是一个模块,一个模块是一些相似功能的集合体。
模块的作用:
1.减少重复代码,提高开发效率。(有好多第三方库(也就是模块))
2.使得你的代码的组织结构更清晰,更有条理性。
模块的划分:
1.内置模块。类似time os sys 无需下载安装。
2.拓展模块(也称第三方模块) 下载安装 用pip3 pip 安装的模块,第三方模块。
如beautiful soup request gevent等 itchat与微信相关的模块。
3.自定义模块 自己写的模块。
自定义模块的引用:
1.import #引用模块相当于执行这个模块
#ps:重复导入会直接引用内存中已经加载好的结果。
#模块被执行发生了三件事:
1.创建一个以被导入模块的名字命名的名称空间
2.自动执行模块中的代码(将模块中的所有内容加载到内存)
3.要想执行模块中的代码必须通过模块名.的方式执行获取。
模块的改名 #内置也可以改
import xxxxxxxx as ab
print(ab.age)
作用:
1.模块名过长,引用不方便,给模块改名,简化引用。
2.优化代码(多个模块中含有相同的函数,通过起别名的方式优化代码。)
引用多个模块 #无序
标准形式:一行写一个import
不标准(不建议)使用: import mysql,time,os,sys
2. from.....import.....
'''
1.执行一遍自定义模块的代码
2.将引用的变量如name在原文件的全局名称空间中添加或覆盖
'''
好处:使用简单。
坏处:容易与本文件的变量,函数名等发生冲突、改变。
也可以取别名from aaa import name as n,也可以导入多个
*导入所有from aaa import *
!慎用,一般不用,只有以下两点才用:
1.将导入的模块所有代码都一清二楚,避免重复。
2.只使用模块函数中的一部分。
在模块中写入__all__ = ['xxx','xxx']
模块调试:
文件有两个作用:
1.作为脚本直接运行
2.作用模块供给别人使用
if __name__ == '__main':
模块下print(__name__) 输出的是__main__
文件下模块print(__name__) 输出的是模块名
模块的搜索路径:
先从内存中去寻找 --》 built_in 内置模块 --》 sys.path