python 中的模块和库

什么是模块,什么是库

  • 模块(module): 就是一个 .py 文件
  • 库包(package):比模块更大的管理单位,形式就是一个文件夹

import 加载过程

用法如下:

import module [as alias]
  1. import 最后导入的必须是模块,而不能是库包
  2. 导入模块时,会自上而下加载模块中的代码。(从指定的模块中导入方法,也会加载)
  3. 导入 包.包.模块,会先执行包中的 __init__.py 文件,然后从上至下加载对应模块中的代码

package 加载过程

python3.3 之前,文件目录想当作 package来引用。必须包含__init__.py文件(可以是空文件),而 python3.3 以后的版本中,__init__.py 文件则不再需要。

文件导入

绝对导入和相对导入

假如文件目录如下:

study/
├── data
│   ├── __init__.py
│   ├── mysql.py
│   └── redis.py
└── main.py

1. 绝对导入
直接从最顶层的 package 导入

from data import mysql

问: 为什么不是直接从study 导入?
答: study不包含 __init__.py,并不是包
2. 相对导入
在同一级目录下,可以如此导入:

import mysql

不建议使用相对导入,因为相对导入,在不同的而目录下运行文件,会报错
无论是相对路径还是绝对路径,都是相对于运行目录来讲的

参考目录:

https://juejin.cn/post/7087069728371376164

posted @ 2023-03-16 08:19  沧海一声笑rush  阅读(68)  评论(0编辑  收藏  举报