Определите, является ли __getattr__ вызовом метода или атрибута.Python

Программы на Python
Anonymous
Определите, является ли __getattr__ вызовом метода или атрибута.

Сообщение Anonymous »

Есть ли способ определить разницу между вызовом метода и атрибута с помощью __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. Я также понимаю, что методы — это атрибуты и что решения может не быть. Просто надеюсь, что он есть.

Подробнее здесь: https://stackoverflow.com/questions/201 ... ibute-call

Вернуться в «Python»