Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行。要包含目录里的文件,PHP中只需要给对路径就OK。Python中则不同,下面来看看这个例子。
目录结构:
$ tree ./
./
├── a.py
└── dir
└── b.py
a.py要import dir目录下的b.py文件。
b.py:
name = 'zhangsan'
a.py:
# coding=utf-8
"import dir 目录下的 b.py 文件"
import dir.b
print dir.b.name
执行a.py报错
╰$ python a.py
Traceback (most recent call last):
File "a.py", line 4, in <module>
import dir.b
ImportError: No module named dir.b
提示找不到这个模块的名字dir.b
。通过查找官方文档,发现要包含目录下的文件时需要在目录下声明一个__init__.py
文件,即使这个文件是空的也可以。当然这个文件也可以初始一些数据。
╰$ tree
.
├── a.py
└── dir
├── __init__.py
└── b.py
重新执行a.py,一切OK!
╰$ python a.py
zhangsan