模块详解及import本质

一、模块的定义
用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能)
本质就是.py结尾的Python文件(文件名test.py,对应的模块名:test)
包:用来从逻辑上组织模块的,本质是一个目录(必须带有一个__init__.py文件)
 
二、模块的导入
import module_name
import module1_name,module2_name
#相当于将module_name.py文件赋值给module_name
调用时:module_name.funcationname

from module_name import *
from module_name import 变量名/函数名
调用时,直接使用,不用加module_name前缀
此导入方式会引起函数名,变量名在原调用文件中的冲突
from module_name import  func_name/varname as  new_name
此方式可以避免上述重名冲突,使用时用new_name 调用

from . import module_name 从当前目录导入module_name
三、import的本质

导入模块的本质就是把Python文件解释一遍(import test======>test = 'test.py all code')
import module_name ------------>module_name.py------>module_name.py的路径----->sys.path
在sys.py这个列表里查找module_name,找不到抛出错误
 
 
导入包的本质就是解释(执行)该包下的__init__.py文件
import package_name  #run package_name下的__init__.py文件
 
4、导入优化
from module_name import  func_name/varname as  new_name
减少import的检索过程
相当于把模块module_name 下的func_name/varname 拿到当前执行一遍
 
5、模块的分类
a、标准库
b、开元模块
c、自定义模块
 
posted @ 2017-09-05 09:13  coldcastle  阅读(304)  评论(0编辑  收藏  举报