【发布时间】:2015-02-19 14:56:04
【问题描述】:
我有以下结构:
/api
/v0
api_1.py
api_2.py
/v1
api_1.py
api_2.py
我想这样使用它:
import api
api.v0.api_1.notify_user('1337')
但是,例如dir(api.v0.api_1),我不仅会获得 API 方法,还会获得在内部执行的所有导入。我觉得其他开发人员不应该为我在内部使用的东西而烦恼。
我正在考虑的解决方案之一是将 api_1 中的所有内部导入更改为类似的内容:
import collections as _collections
明确表明它不是公共 API 的一部分。但是,这似乎很奇怪。
我应该如何解决这个难题?或者也许我根本不应该打扰,而我想要实现的是矫枉过正?
【问题讨论】:
-
我认为你根本不应该打扰。
-
您可以使用
__init__.py文件和__all__属性来定义包对外公开的内容;参见例如stackoverflow.com/q/44834/3001761, stackoverflow.com/q/448271/3001761
标签: python python-import python-module