According to the docs on inheritance:
Derived classes may override methods of their base classes. Because methods have no special privileges when calling
class Base(): def m1(self): return self.m2() def m2(self): return 'base' class Sub(Base): def m2(self): return 'sub' b = Base() s = Sub() print(b.m1(), s.m1())
prints "base sub"