在这种目录结构下,import fibo会实际导入fibo文件夹这个modulepython
λ tree /F 卷 Programs 的文件夹 PATH 列表 卷序列号为 BC56-3256 D:. │ fibo.py │ ├─fibo │ │ __init__.py │ │ │ └─__pycache__ │ __init__.cpython-36.pyc │ └─__pycache__ fibo.cpython-36.pyc
>>> import fibo >>> fibo <module 'fibo' from 'D:\\Programs\\cmder\\Python\\fibo\\__init__.py'>
如果fibo目录下未定义__init__.py,而存在fibo.py,则import fibo 会导入fibo.pyspa
. ├── fibo │ ├── gfibo.py │ ├── pfibo.py │ └── __pycache__ │ ├── __init__.cpython-35.pyc │ └── pfibo.cpython-35.pyc ├── fibo.py └── __pycache__ └── fibo.cpython-35.pyc
>>> import fibo >>> fibo <module 'fibo' from '/root/pyl/fibo.py'>
若不存在fibo.py,也不存在__init__.py,则会导入fibo命名空间code
. ├── fibo │ ├── gfibo.py │ ├── pfibo.py │ └── __pycache__ │ ├── __init__.cpython-35.pyc │ └── pfibo.cpython-35.pyc └── __pycache__ └── fibo.cpython-35.pyc
>>> import fibo >>> fibo <module 'fibo' (namespace)>