У меня есть класс:Python класса Instance Арифметика
class Foo:
def __init__(self, a, b):
self.a = a
self.b = b
Где a
с плавающей точкой и b
является кортеж, содержащий позицию в декартовой системе координат.
Скажем, a = Foo(1.23, (1, 2))
.
То, что я хочу сделать, это сделать так, что если мы делаем a + 4.56
или 7.89 - a
или что-то, что он оценивает a
быть поплавок объект (a.a
).
Я знаю, что могу просто добавить встроенные методы, такие как __add__
и __sub__
, но есть ли более простой способ? Как в одном, который обеспечивает функциональность одним способом?
Я так не считаю. В противном случае мы можем сделать 'Foo()' + 'Bar()' = 'Egg()'. Питон - это волшебство. Есть ручная работа. '+' не перегружен, поэтому он сохранит свою стандартную функциональность. – CppLearner