2.7. 模块和包
2.7.1. 构建一个模块的层级包
封装成包是很简单的。在文件系统上组织你的代码,并确保每个目录都定义了一个__init__.py文件。
2.7.2. 控制模块被全部导入的内容
# somemodule.py
def spam():
pass
def grok():
pass
blah = 42
# Only export 'spam' and 'grok'
__all__ = ['spam', 'grok']
2.7.3. 使用相对路径名导入包中子模块
from . import grok
2.7.4. 将模块分割成多个文件
# __init__.py
from .a import A
from .b import B
2.7.5. 重新加载模块
使用 imp.reload()
来重新加载先前加载的模块。
2.7.6. 运行目录或压缩文件
目录下放置__main__.py文件, 即可。
2.7.7. 将文件夹加入到sys.path
你可以使用PYTHONPATH环境变量来添加。
创建一个.pth文件,将目录列举出来
sys.path.insert(0, ‘/some/dir’)
2.7.8. 通过字符串名导入模块
In [3]: import importlib
In [4]: m = importlib.import_module('math')
In [5]: m.fabs(-1.0)
Out[5]: 1.0