1,定义
模块,用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件。(文件名test.py,对应的模块名就是test)
### 这个理解就是读一下你import的文件
2,导入方法
import module_name
import module_name1,module_name2
from module_name import * #导入module_name 下的所有内容
form module_name import m1,m2,m3 #导入module_name 下的 m1,m2,m3函数,这里m1也可以是值
form module_name import m1 as m1_qiangql #导入 module_name下的m1 方法,但是防止本地也有这个方法,另起一个名字m1_qiangql(如果本地重名了,本地的内容就会覆盖调用的函数)
3,import本质(路径搜索和搜索路径)
导入模块的本质就是把python文件解释一遍
(import test 这里 test 等于 ‘test=test.py all code’#test里的所有代码)
(from test import m1 这里m1=‘code’,也可以 from test import name 这里name=‘code’一个道理)
import module_name------>module.py------>module.py的路径------> sys.path #找到module.py的位置,sys.path 变量里边定义一堆搜索路径,后边我们append 自己的路径加进去,就是为了寻找
os.path.abspath(__file__) #获得当前绝对路径
os.paht.dirname()#获取目录名
os.paht.dirname(os.path.abspath(__file__) )#返回当前目录的父集,可以多几次dirname
sys.path.append(os.paht.dirname(os.path.abspath(__file__) )) #把这个路径加到path里边,这里有一个问题,path是个列表序列,如果前边有类似的目录,就会找歪了
sys.path.inster(0,sys.path.append(os.paht.dirname(os.path.abspath(__file__) ))) #这里用到inster 方法,这里0就是把路径直接放到最前边
导入包的本质就是执行该包下的__int__.py文件
4,导入优化
这个就一个点,就是防止重复运行
这里就是重复检索module_test。
这样 from module_test import test, 直接可以在函数里调用test(),防止重复检索。
5,模块的分类
啊:标准库
吧:开源模块
吃:自定义模块