Определите, является ли __getattr__ вызовом метода или атрибута
Есть ли способ определить разницу между методом и вызовом атрибута с помощью __getattr__?
То есть в:
class Bar(object):
def __getattr__(self, name):
if THIS_IS_A_METHOD_CALL:
# Handle method call
def method(**kwargs):
return 'foo'
return method
else:
# Handle attribute call
return 'bar'
foo=Bar()
print(foo.test_method()) # foo
print(foo.test_attribute) # bar
Методы не являются локальными, так чтоневозможно определить это с помощью getattr / callable. Я также понимаю, что методы являются атрибутами, и что может не быть решения. Просто надеюсь, что есть один.