for method in ('foo', 'bar'):
    this_method = getattr(self, method)
base_method = getattr(BaseClass, method)
if this_method.__func__ is not base_method.__func__:
    overriden.append(method)
return overriden


class SubClass(BaseClass):

    def foo(self):
        return 'override foo'
o = SubClass()
o.methods_implemented()
Как базовый класс Python может определить, переопределил ли подкласс свои методы?