__getattr__ equivalente para los métodos

Cuando no se encuentra un atributo, se llama al object.__getattr__ . ¿Hay una manera equivalente de interceptar métodos indefinidos?

Los métodos también son atributos. __getattr__ funciona igual para ellos:

 class A(object): def __getattr__(self, attr): print attr 

Entonces intenta:

 >>> a = A() >>> a.thing thing >>> a.thing() thing Traceback (most recent call last): File "", line 1, in  TypeError: 'NoneType' object is not callable 

No hay diferencia. Un método es también un atributo. (Sin embargo, si desea que el método tenga un argumento “propio” implícito, tendrá que trabajar un poco más para “enlazar” el método).

No devolviste nada.

 class A(object): def __getattr__(self, attr): return attr 

Deberia trabajar