Что такое инвариантность класса

Python Senior Без компании
Что такое инвариантность класса
Ответы
Инвариант класса — это условие или набор условий, которые всегда должны выполняться для объектов класса в течение их жизненного цикла (кроме, возможно, момента внутри метода). Это гарантирует корректное состояние объекта. Пример: ``` class BankAccount: def __init__(self, balance: float): self._balance = balance # Инвариант: баланс не может быть отрицательным assert self._balance >= 0, "Balance cannot be negative" def withdraw(self, amount: float): # Проверяем инвариант перед операцией assert self._balance - amount >= 0, "Insufficient funds" self._balance -= amount # Проверяем инвариант после операции assert self._balance >= 0, "Balance became negative" ``` Ключевые моменты: - Инварианты проверяются в конструкторе - Проверяются до и после изменяющих методов - Нарушение инварианта — ошибка в логике класса - Часто проверяются через assert (в продакшне можно отключить)