Как наследовать от numpy.float и применять неотрицательные числа - PullRequest
1 голос
/ 08 апреля 2019

Я хотел бы унаследовать от numpy.float, чтобы создать cash класс.

class Cash(numpy.float):

    def __init__(self, amount, currency='$'):
        super().__init__()
        self.amount = amount
        self.currency = currency

    def __str__(self):
        return f"Cash({round(self.amount, 2)}{self.currency})"

Какова была бы лучшая стратегия для обеспечения того, чтобы этот класс был неотрицательным во время арифмитики?Например, этот тестовый метод возвращает -2.0, но я хочу, чтобы он вызвал ValueError.

def test_sub1(self):
    c1 = Cash(4.00)
    c2 = Cash(6)
    self.assertEqual(2, c1 - c2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...