Методы тоже атрибуты. __getattr__
работает для них одинаково:
class A(object):
def __getattr__(self, attr):
print attr
Тогда попробуйте:
>>> a = A()
>>> a.thing
thing
>>> a.thing()
thing
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable