为什么super()调用导致无限循环?

时间:2013-09-06 15:15:21

标签: python oop recursion infinite-loop super

最近我在接受采访时被问到这个问题:

以下代码有什么问题

class A(object):
      def __init__(self):
          super(self.__class__, self).__init__()

class B(A):
      pass

b = B()

我没想到它会进行无限递归。那是为什么?

我知道这里描述的那些棘手的地方 How to avoid infinite recursion with super()? 因此我查看了对象的来源。 init 以查看是否有其他超级调用导致递归(http://hg.python.org/cpython/file/2.7/Objects/typeobject.c#l2872)。但据我所知,没有。

那为什么呢?

0 个答案:

没有答案