¿Cómo puede una clase base de python saber si una subclase ha invalidado sus métodos?

Aquí está mi conjetura, que no funciona:

class BaseClass(object):
    def foo(self):
        return 'foo'
    def bar(self):
        return 'bar'
    def methods_implemented(self):
        """This doesn't work..."""
        overriden = []
        for method in ('foo', 'bar'):
            this_method = getattr(self, method)
            base_method = getattr(BaseClass, method)
            if this_method is not base_method:
                overriden.append(method)
        return overriden

class SubClass(BaseClass):
    def foo(self):
        return 'override foo'

o = SubClass()
o.methods_implemented()

Idealmente, methods_implemented () devolvería ['foo'].

¿Cómo?

(¿Por qué querría hacer esto? Mi clase base es una clase de recursos HTTP que tiene los métodos GET, POST, etc. Por defecto devuelven 405 Método no implementado. También tiene un método OPCIONES que debería devolver una respuesta 200 con el encabezado Permitir establecer en los métodos que implementa cualquier subclase.)

Respuestas a la pregunta(2)

Su respuesta a la pregunta