из моих исследований я понимаю, что использование getattr() позволяет получить метод для определенного объекта, такого как:
getattr(obj, method)
эквивалентен
obj.method()
Однако я попытался использовать его в своем коде, и оператор возвращает ячейку памяти:
<bound method _Class.method of <Class instance at 0x7f412df0c320>>
Я не понимаю, что делаю не так. Любая помощь приветствуется.






Методы - это просто атрибуты, а getattr() извлекает атрибуты. Как таковой
getattr(obj, 'method')
такой же как
obj.method
так что без первичного вызова (), поэтому не будет вызова объекта метода. Просто добавьте выражение вызова, чтобы вызвать результат метода getattr():
getattr(obj, 'method')()
__getattr__ - это метод перехвата, позволяющий классу настраивать обработку отсутствующих атрибутов. Как правило, вам не нужно вызывать его напрямую.
getattr(obj, 'method')является эквивалентомobj.method. Ничего не вызывается, вы просто извлекаете атрибут.