【发布时间】:2010-10-09 14:58:15
【问题描述】:
我正在尝试组织一些模块供我自己使用。我有这样的事情:
lib/
__init__.py
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
在lib/__init__.py 中,我想定义一些在导入 lib 时要使用的类。但是,如果不将类分成文件并将它们导入__init__.py,我似乎无法弄清楚。
而不是说:
lib/
__init__.py
settings.py
helperclass.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
from lib.settings import Values
from lib.helperclass import Helper
我想要这样的东西:
lib/
__init__.py #Helper defined in this file
settings.py
foo/
__init__.py
someobject.py
bar/
__init__.py
somethingelse.py
from lib.settings import Values
from lib import Helper
有可能吗,还是我必须将类分离到另一个文件中?
编辑
好的,如果我从另一个脚本导入 lib,我可以访问 Helper 类。如何从 settings.py 访问 Helper 类?
示例here 描述了包内引用。我引用“子模块经常需要相互引用”。就我而言,lib.settings.py 需要 Helper,而 lib.foo.someobject 需要访问 Helper,那么我应该在哪里定义 Helper 类?
【问题讨论】:
-
你的最后一个例子应该可以工作。您看到 ImportError 了吗?可以贴一下详细信息吗?