Sto scrivendo un risolutore di equazioni matematiche in python (per divertimento). Il primo progetto che mi è venuto in mente:
-
Expression: classe di base per ogni oggetto in un'equazione (forse un brutto nome). -
BinaryExpressionestendeExpression: due espressioni con un segno. -
Expression + Expressiondovrebbe fornire unBinaryExpression, lo faccio sostituendo il metodo__add__diExpression.
questa è una sorta di dipendenza circolare, che io e python odiamo entrambi.
class Expression(object):
def __add__(self, other):
return BinaryExpresison(self, OP.ADD, other)
class BinaryExpress(Expression):
def __init__(self, op, other):
pass # super and staff
Come lo faresti?