Sobes.tech
Back to questions
Middle
2

Как в Python числовому полю класса предотвратить присвоение отрицательного значения?

Companies where asked
RadLab

Answer from AI

sobes.tech AI

Чтобы в Python предотвратить присвоение отрицательного значения числовому полю класса, можно использовать свойство (property) с проверкой в сеттере. Пример:

class Product:
    def __init__(self, price):
        self.price = price  # вызовет сеттер

    @property
    def price(self):
        return self._price

    @price.setter
    def price(self, value):
        if value < 0:
            raise ValueError("Цена не может быть отрицательной")
        self._price = value

# Использование
p = Product(100)
p.price = 50   # работает
p.price = -10  # вызовет исключение ValueError

Такой подход позволяет контролировать присвоение значения и выбрасывать ошибку при попытке установить недопустимое значение.