运行时错误:递归错误:调用 Python 对象时超出了最大递归深度



我有许多 foo 类的派生类,我正在尝试将基类的对象实例化为派生类之一。我只想调用一次基类的构造函数。我在尝试执行以下代码段时遇到运行时错误:

class foo():
     call_once = True
     _Bar = None
     _BaseClass = None
     def __init__(self):
           if (self.call_once):
               self.call_once = False
               self._Bar = bar()
               self._BaseClass = _bar
class bar(foo):
     def __init__(self):
           foo.__init__(self)
bar1 = bar()

发生这种情况是因为call_once是一个类变量,但您将 False 分配给call_once实例变量。要修复它,请检查并将False分配给foo.call_once

class foo():
     call_once = True
     _Bar = None
     _BaseClass = None
     def __init__(self):
           if (foo.call_once):
               foo.call_once = False
               self._Bar = bar()
               self._BaseClass = _bar

最新更新