Как сделать свойство объекта используемым по умолчанию в Python как в VBA?
Допустим, мне нужно вычислить А = Б + В (операции могут быть произвольные), где А, Б и В - объекты одного класса с множеством свойств и методов. Я хочу, чтобы в выражении выше были прочитаны значения из свойства Value объектов Б и В, были вычислены в новое значение, которое было бы присвоено свойству Value объекта А. При этом обращение к другим свойствам и методам производилось бы как обычно через точку. Мне это необходимо для осуществления наглядности переменных простых (базовых) типов в сложных выражениях. В VBA этого можно добиться специальным атрибутом свойства объекта, порожденного от класса.
"Мне это необходимо для осуществления наглядности переменных простых (базовых) типов в сложных выражениях." - Я имел ввиду, я хочу добиться такой же наглядности, как если бы использовал переменные базовых типов, без обращения к свойству через точку.
Я имею дело с сотнями формул. Обращение через точку плохо влияет на наглядность, а использование таких объектов в VBA со свойствами по умолчанию (кажущимися переменными базовых типов) помогало мне проверять значения перед присвоением, внедрять логирование, и т. п., не теряя наглядность вычислений.
Магические методы помогут.
Это не "свойство по умолчанию", а скорее "определение смысла операции для данного объекта", но итоговый результат будет примерно тот же.
Также можно использовать методы __int__(), __float__() и __complex__() чтобы прозрачно преобразовать объект в число. Но обычно __add__() сотоварищи куда практичнее.