1、定义
模块:用来从逻辑上组织PYTHON代码,(变量,函数,类,逻辑:实现一个功能),本质就是。py结尾的python文件(文件名:test.py,对应模块名就是:test)
包:本质就是一个目录(必须带一个__init__.py的文件)
2、导入方法
import module_name
import module_name,module_name2
from module_name import * #不建议使用 把所有模块中的代码都代入,同名容易冲突
from module_name import logger as logger_alex #给模块中的程序起一个别名,可以避免冲突
调用的模块 module alex
# coding=utf-8 # Author: RyAn Bi name= 'alex' def say_hello(): print('hello') def logger(): print('im logger in module')
主程序
# coding=utf-8 # Author: RyAn Bi #import module_alex from module_alex import name,logger as logger_alex def logger(): print('im logger in main') logger() logger_alex() print(name) #可以导入参数
3、import的本质(路径搜索和搜索路径)
导入模块的本质就是把python文件解释一遍(import test test = ‘test.py all code’)
(from test import ml ml = “code”)
导入包的本质,就是解释包里的init文件
import module_name-----> module_name.py ---->module_name.py 的路径--->新的路径,加入环境变量(sys.path)
import sys,os print(sys.path) #就是一个路径的列表 print(os.path.abspath(__file__)) #当前目录的路径 print(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) #返回到上上级目录,就是调用模块的父目录 sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) #将新目录加到环境变量中 import module_alex as x x.say_hello