模块基础概念

模块(Module)
  • 一个.py文件为一个模块
  • 可维护性
  • 可扩展性
  • 每个模块有独立的命名空间
模块分类
  • 内置标准模块
  • 第三方开源模块
  • 自定义模块
模块调用
  • import module
  • from module import xx
  • from module.xx.xx import xx as rename
  • from module.xx.xx import *
模块查找路径
  • sys.path
  • 按照路径列表顺序去查找模块名,只要找到就停止
  • 空元素代表当前目录,所以自定义当前目录模块会被优先导入
import sys

print(sys.path)
['',
 '/Library/Frameworks/Python.framework/Versions/3.6/lib/python36.zip', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload', 
'/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages']
包(Package)
  • 把相关的模块放在一个文件夹中,这个文件夹就被称为包
  • 文件夹内必须存在__init__.py文件,该文件用于标识该文件夹为包
跨模块导入
  • 添加环境变量,把父级路径添加到sys.path中,从父级开始查找
import sys ,os

# __file__的是打印当前被执行的模块.py文件相对路径,注意是相对路径
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.append(BASE_DIR)  

from proj import settings
绝对&相对导入
  • .. 上层路径
  • . 当前路径

猜你喜欢

转载自www.cnblogs.com/chacecai/p/8978832.html
今日推荐