package是标识,而非文件夹。
- 在pycharm中new,有Directory和Python Package两个选项。
- 分别创建Directory和package,发现前者只是一个空目录,后者包含一个__init__.py文件。
- 这就是__init__.py的package标识作用,他告诉python,这不是一个普通的目录而是一个python的模块包(module package)。
- 一般为空文件,但是必须存在。
- 在这个目录被import时,会执行__init__.py,所以我们可以在此文件中import此文件夹下的py文件(py文件就是一个模块,module),以简化导入流程。
简化模块导入操作
举例:test.py想引用mysql.py和redis.py,因为不在同一个文件夹下,不能直接引用。
__init__.py代码如下:
将当前包下的模块都导入到 __init__.py文件中,模糊导入或者精确导入两种方法均可。
注意:由于 package 被导入时 __init__.py
中的可执行代码会被执行,所以小心在 package 中放置你的代码,尽可能消除它们产生的副作用,比如把代码尽可能的进行封装成函数或类。
# 模糊导入,导入全部
#(.代表当前文件夹)
from . import *
#精确导入
from . import mysql,redis
test.py代码如下:
运行一下test.py,成功引用mysql.py和redis.py