Нужно мне распознать когда в коде вызывается такой сопсоб
inst.attr
и такой
inst.attr()
Если я просто переопределяю __getattribute__ то я могу понять только то что этот атрибут был запрошен. А вызовут его потом как функцию или нет я не знаю.
Тут я вижу дванаправления размышлений.
1. Решить на стороне класса который inst, както всё таки понять что далее следует вызов
2. attr сделать тоже классом где переопределить __call__ который даст ясно понять что есть вызов. Ну и както определить что идет просто обращение наприрмер чтобы присвоить в какуюто переменную. Тут я не знаю как сделать.
Что можете подсказать? может есть какойто спецметод для взятия инстанса как значения?
опишу немного иначе в коде надо сделать так x = attr этот код вызывае raise x = attr() а этот норм работает и возвращает в x значение
Я бы через call делал
Никак нельзя
Обсуждают сегодня