Я пишу "среду", где каждая переменная состоит из значения и описания:
class my_var:
def __init__(self, value, description):
self.value = value
self.description = description
Переменные создаются и помещаются в словарь:
my_dict["foo"] = my_var(0.5, "A foo var")
Это круто, но 99% операций с переменной выполняются с элементом value. Поэтому я должен написать так:
print my_dict["foo"].value + 15 # Prints 15.5
или
my_dict["foo"].value = 17
Мне бы хотелось, чтобы все операции над объектом my_dict ["foo"] могли по умолчанию принимать значение "value". Другими словами, я хотел бы написать:
print my_dict["foo"] + 15 # Prints 5.5
и все в таком духе.
Единственный способ, который я нашел, это переопределить все члены подчеркивания (например, add, str и т. Д.), Но я чувствую, что это неправильный путь. Есть ли магический метод, который я мог бы использовать?
Обходным решением было бы иметь больше словарей, например:
my_dict_value["foo"] = 0.5
my_dict_description["foo"] = "A foo var"
но мне не нравится это решение. У вас есть предложения?