【问题标题】:Loading classes with inheritance from package加载具有从包继承的类
【发布时间】:2012-03-06 07:41:58
【问题描述】:

以下结构:

app.py
  /package
    __init__.py
    foo.py
    bar.py

“foo.py”和“bar.py”包含两个类“Foo”和“Bar”。 “Foo”类继承自“Bar”类。我们在文件中有以下代码...

“app.py”:

from package import Foo

print Foo()

“__init__.py”:

from foo import Foo
from bar import Bar

“foo.py”:

class Foo(Bar):
    pass

“bar.py”:

class Bar:
    pass

如果我从“Foo”创建一个实例,则会出现名称错误“名称 'Bar' 未定义”。我必须做些什么才能让它工作?如果重要的话,我正在使用 Python 2.6.6...

.oO(我是 Python 新手)

【问题讨论】:

  • 你必须展示真实的代码,这里还不够。
  • from bar import Bar放到foo.py

标签: python


【解决方案1】:

你需要这条线

from bar import Bar

在文件foo.py只是在__init.py__)。

【讨论】:

  • 不要使用隐式相对导入。您可以:from package import Bar(依赖于__init__.py 中的导入)或from package.bar import Barfrom .bar import Bar
猜你喜欢
  • 2020-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-17
  • 2020-12-05
  • 2014-01-25
  • 2014-11-15
  • 1970-01-01
相关资源
最近更新 更多