1.定义
模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名.py结尾的文件模块名就叫文件名)
包:用来从逻辑上组织模块的,本质就是一个文件夹(必须带有一个_init_.py的文件)
2.导入方法
导入模块:
import module_name
import module_name1,module_name2,module_name3
from module_name import * #将模块中的所有代码进行了导入
from module_name import 函数名 as 新函数名
#适用于函数名重复的情况出现,起个别名
跨目录导入:
import sys,os
sys.path #环境变量路径
os.path.abspath(__file__)#取出当前文件路径的绝对路径
os.path.dirname(os.path.abspath(__file__))#取出当前文件路径的父路径
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#取出当前文件路径的父路径的父路径
将写好的路径赋值给一个变量再添加到系统变量中
sys.path.append(变量名)
调用方法:
代码(模块名.模块中内容)
模块.定义函数
eg:
module_1.py
name='ht'
def say_hello()
print('hello ht')
main.py
import module_1
print(module_1.name)
module_1.say_hello()
注:如果使用了from开头与import配合方法那么调用时不需要写模块.的前缀
导入包下模块:
修改init,使用
from . import 模块名 #导入当前路径模块
3.import本质(路径搜索和搜索路径)
导入模块的本质就是把Python文件解释一遍
(1.import test 相当于模块名变量=模块中所有执行后的代码)
(2.from test import m1 相当于 m1=代码单独拉到程序中,所以可以直接使用)
导入包的本质就是解释包中的_init_.py文件
4.导入优化
对于平时一直在用的模块的函数,为了减少查找模块文件的过程,推荐使用
from module_name import 函数名
ps:这样在调用过程中,等于把代码加入了当前程序中,减少了查找路径的过程节省了时间
5.模块分类
a.标准库
b.开源模块(第三方模块)
c.自定义模块