模块
1.模块分类与输入顺序:
内置模块
扩展的模块
自定义的
模块不会重复导入 (sys.moudles)
import sys
print(sys.modules.keys())
print(sys.path)
sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules都将记录这些模块。字典sys.modules对于加载模块起到了缓冲的作用。当某个模块第一次导入,字典sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。
从哪导入的模块(sys.path)
python的搜索模块的路径集,是一个list
2.模块的导入
import
import 模块名
模块名.变量名 和本文件中的变量名完全不冲突
import 模块名 as 重命名 :提高代码的兼容性
import 模块名1,模块名2
form import
from 模块名 import 变量名
直接使用 变量名 就可以完成操作
如果本文件中有相同的变量名会发生冲突
from 模块名 import 变量名字 as 重命名变量名
from 模块名 import 变量名1,变量名2
from 模块名 import *
将模块中的所有变量名都放到内存中
如果本文件中有相同的变量名会发生冲突
from 模块名 import * 和 __all__ 是一对
没有这个变量,就会导入所有的名字
如果有all 只导入all列表中的名字
3.__name__
在模块中 有一个变量__name__,
当我们直接执行这个模块的时候,__name__ == '__main__'
当我们执行其他模块,在其他模块中引用这个模块的时候,这个模块中的__name__ == '模块的名字'