2011-03-15 76 views
0

我有几个包,其中包括一个名为util模块,这样就很难说哪个util模块被称为如果你看到这样的事情:我该如何实现“从foo.bar import baz.qux”这样的东西?

util.some_func() 

我想什么做的是这样的:

views.util.some_func() 

...但我找不出一个很好的方法来导入这个。当然,这并不工作:

from apture.main import views.util 

最好我能想出是在views/__init__.py添加from . import views,然后做到这一点:

from apture.main import views 
views.util.some_func() 

有没有什么更好的方法来做到这一点?我能想到的唯一选择就是:

import apture.main.views.util 
from apture.main import views 

views.util.some_func() 

...但是这是一个有点难看。

+0

加载子模块__init__'是做它的标准方式。我们正在谈论Python,所以没有比标准方式更好的方法。 – 2011-03-16 00:08:38

回答

4

将这工作给你:在`

from apture.main.view import util as view_util 
+0

我可能过于挑剔,但我并不喜欢用下面的方式替代下划线。我想这只是我有一些想法,'view.util'是'view'包中的子模块,而我必须查看文件的顶部来说明'view_util'是什么。无论如何,听起来好像我可能没有任何符合我要求的选择。 :-) – 2011-03-15 23:57:45