Сейчас пишу свой pet-project и возник вопрос нужно ли проверять типы переменных, которые приходят в функцию?
Вот пример работы с полем класса, вокруг которого построено приложение
@property
def mnf_year(self) -> int:
return self.mnf_year
@mnf_year.setter
def mnf_year(self, year: int):
if year is None:
raise AttributeError("Manufacture year can't be None")
if not isinstance(year, int):
raise AttributeError("Manufacture year should be integer value")
if year > datetime.now().year or year <= 1900:
raise AttributeError("Manufacture year should be in range[1900, now]")
self.mnf_year = year
Просто помню, как Марк Лутц говорил, что не следует накладывать ограничения на типы, тк функция может работать с несколькими типами данных. Подскажите как лучше делать?