超级方法调用覆盖的子方法而不是原始的超级方法

时间:2021-07-21 13:00:50

标签: python-3.x inheritance overriding

试图覆盖一个方法,然后调用一个单独的超级方法,该方法又调用原始的超级未覆盖方法。然而,这最终会调用创建递归循环的子级重写方法。

MWE:

class A:
    def over(self, stuff):
        print('A has been called {}'.format(stuff))

    def something_else(self, stuff):
        print("Something else happens here")
        self.over(stuff)

class B(A):
    def over(self,stuff):
        print('B has been called {}'.format(stuff))
        super().something_else(stuff)


b = B()

b.over('tests')

重复输出直到堆栈溢出:

B has been called tests
Something else happens here

不确定我是否在这里使用错误,任何帮助将不胜感激

0 个答案:

没有答案
相关问题