Middle
61
Jak zapobiec przypisywaniu ujemnych wartości do pola numerycznego w klasie w Pythonie?
Firmy, w których zadano pytania
RadLab
Odpowiedź od 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
Такой подход позволяет контролировать присвоение значения и выбрасывать ошибку при попытке установить недопустимое значение.