我遇到了一个子类的问题,该子类有多个调用其父类的init方法的超类。我收到一个关于未绑定__init__
需要父实例的错误,但得到了子实例。StackOverflow 上的其他一些问题指出,这是来自多次定义的父类,我通过在解释器中输入的简单脚本确认了这一点。
注意:这不是我要问的问题的代码。这是一个例子来说明基类被重新定义并导致继承类不再正常工作的问题。
>>> class Base(object):
... def __init__(self):
... print "Base!"
...
>>> class Inherited(Base):
... def __init__(self):
... Base.__init__(self)
... print "Inherited"
...
>>> class Base(object):
... def __init__(self):
... print "Base!"
...
>>> Inherited()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in __init__
TypeError: unbound method __init__() must be called with Base instance as first argument (got Inherited instance instead)
>>>
我的问题是,如何防止基类被多次定义?我正在处理的项目有多个文件和导入,因此很难将所有内容重构为仅包含一次文件。