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). -
BinaryExpression
estendeExpression
: due espressioni con un segno. -
Expression + Expression
dovrebbe 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?