【问题标题】:How to import a class defined inside __init__.py in same package?如何在同一个包中导入在 __init__.py 中定义的类?
【发布时间】:2014-06-20 05:09:11
【问题描述】:

我有一个类似的包裹

package/
--__init__.py
--test.py

假设类 Sample 定义在 __init__.py 中,那么我如何从 test.py 导入类 Sample。

【问题讨论】:

  • 如果定义在__init__,为什么要从test导入
  • 为什么要这样做?显式优于隐式。
  • 我想使用Sample类作为test.py内部类的父类

标签: python python-2.7 python-3.x import python-import


【解决方案1】:

__init__.py 中定义的东西成为包命名空间的一部分:

test.py:

import package
print(package.Sample)

【讨论】:

    【解决方案2】:

    使用相对导入,. 是包的根:

    from . import Sample
    

    此外,在__init__.py 中包含“真实”代码/逻辑也是一种不好的做法。大多数情况下,您应该只在 __init__.py 中添加 import 内容,以使其可从包级别外部导入。

    【讨论】:

      猜你喜欢
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多