【发布时间】:2021-07-12 04:28:08
【问题描述】:
我正在尝试在名为 main.py 的脚本中创建一个子类的实例。子类及其关联的超类各自位于子目录中的单独文件中。文件结构如下:
- main.py
- 协议
- protocol.py(里面是一个名为protocol的超类)
- MovingBar.py(里面是一个名为 MovingBar 的子类)
在 main.py 中,我可以使用 from protocols.protocol import protocol 加载协议超类。使用这种方法,我可以毫无问题地生成超类的实例。
但是,当我下次尝试使用 from protocols.MovingBar import MovingBar 加载 MovingBar 子类时,出现以下错误
NameError:名称“协议”未定义
大概是因为我在MovingBar的类def中引用了protocol如下:
class MovingBar(protocol):
def __init__(self):
super().__init__()
我不确定为什么 python 在 main.py 文件中识别对协议的引用,但在 MovingBar 文件中却没有。有没有办法导入协议,以便在我随后导入 MovingBar 时可以看到它?
【问题讨论】:
标签: python import python-import subclass