【问题标题】:How can I achieve something like "from foo.bar import baz.qux"?我怎样才能实现“从 foo.bar 导入 baz.qux”之类的东西?
【发布时间】:2011-03-16 08:20:52
【问题描述】:

我有一些包含名为 util 的模块的包,因此如果您看到类似这样的内容,就很难判断是指哪个 util 模块:

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()

...但这有点难看。

【问题讨论】:

  • __init__ 中加载子模块是执行此操作的标准方法。我们说的是 Python,所以没有比标准方法更好的方法了。

标签: python module package python-2.x import


【解决方案1】:

这对你有用吗:

  from apture.main.view import util as view_util

【讨论】:

  • 我可能过于挑剔,但我不太喜欢用下划线代替点。我想只是我知道view.utilview 包中的一个子模块,而我必须查看文件的顶部才能知道view_util 是什么。无论如何,听起来我可能没有任何选择可以满足我的要求。 :-)
猜你喜欢
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 2021-02-02
  • 2023-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多