@albertalexandrov

Применение дескриптора?

Привет!

Насколько здесь оправдано применение дескриптора? Или можно по-другому решить задачу проверки атрибутов price и quantity на 'положительность'. Пример взят из https://dev.to/dawranliou/writing-descriptors-in-p....

class NonNegative:

    def __set__(self, instance, value):
        if value < 0:
            raise ValueError('Cannot be negative.')
        instance.__dict__[self.name] = value

    def __set_name__(self, owner, name):
        self.name = name


class Order:
  
    price = NonNegative()
    quantity = NonNegative()

    def __init__(self, name, price, quantity):
        self._name = name
        self.price = price
        self.quantity = quantity

    def total(self):
        return self.price * self.quantity

apple_order = Order('apple', 1, 10)
apple_order.price = -10  # ValueError: Cannot be negative
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы