Hi there!
Out of curiosity, was there any decision behind not implementing the __eq__ method inside the Currency class?
In my - maybe naive - understanding, it would make sense to be able to compare Currency objects like so:
Currency('USD') == Currency('USD')
which as of now returns False, as the object's pointers are compared, not the values.
My workaround for this is as follows (python 3.10 code, for python < 3.10 the __ne__ method also needs to be implemented)
class ComparableCurrency(Currency):
def __eq__(self, other):
return isinstance(other, Currency) and self.get_money_currency() == other.get_money_currency()
If for any reason, it doesn't make sense to compare two Currencies with each other, or the implementation on currency.get_money_currency() is too simple, I would really like to undestand the problems with that.
Hi there! Out of curiosity, was there any decision behind not implementing the
__eq__
method inside the Currency class?In my - maybe naive - understanding, it would make sense to be able to compare Currency objects like so:
Currency('USD') == Currency('USD')
which as of now returns False, as the object's pointers are compared, not the values.My workaround for this is as follows (python 3.10 code, for python < 3.10 the
__ne__
method also needs to be implemented)If for any reason, it doesn't make sense to compare two Currencies with each other, or the implementation on
currency.get_money_currency()
is too simple, I would really like to undestand the problems with that.