学生实验: init.py 的作用¶
(date: 2025-10-24)
难度: 入门级
时长: 15 分钟
实验目的¶
理解 __init__.py 文件如何让Python将文件夹识别为包
实验步骤¶
1. 创建文件结构¶
my_experiment/
├── package_A/
│ ├── __init__.py
│ └── module_a.py
├── package_B/
│ └── module_b.py
└── test.py
2. 创建文件内容¶
module_a.py
def say_hello():
print("Hello from package A!")
module_b.py
def say_hello():
print("Hello from package B!")
test.py
print("=== 开始实验 ===")
print("1. 测试有 __init__.py 的包:")
from package_A import module_a
print("✅ 成功导入 package_A")
module_a.say_hello()
print("\n2. 测试没有 __init__.py 的文件夹:")
from package_B import module_b
print("✅ 成功导入 package_B")
module_b.say_hello()
print("=== 实验结束 ===")
3. 执行实验¶
创建以上文件和文件夹
在命令行运行:
cd my_experiment python test.py
预期结果和现象¶
程序会在第二处导入时报错并停止执行:
=== 开始实验 ===
1. 测试有 __init__.py 的包:
✅ 成功导入 package_A
Hello from package A!
2. 测试没有 __init__.py 的文件夹:
Traceback (most recent call last):
File "test.py", line 10, in <module>
from package_B import module_b
ModuleNotFoundError: No module named 'package_B'
实验结论¶
有
__init__.py:Python将文件夹识别为包,可以正常导入无
__init__.py:Python不识别为包,导入时报错停止__init__.py是包的"身份证",告诉Python这是一个包
扩展实验¶
在 package_B 中创建一个空的 __init__.py 文件,重新运行程序,观察变化。