Встречается на собеседованиях • сегодня
Какие знаешь способы реализовать класс по проверки получаемых данных
В Python есть несколько подходов для валидации данных в классе:
- Использование
@propertyи сеттеров
python
class User:
def __init__(self, age):
self.age = age # Вызовет сеттер
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if not isinstance(value, int) or value < 0:
raise ValueError("Age must be positive integer")
self._age = value- Дескрипторы
python
class PositiveNumber:
def __set__(self, obj, value):
if value <= 0:
raise ValueError("Value must be positive")
obj.__dict__[self.name] = value
def __set_name__(self, owner, name):
self.name = name
class Product:
price = PositiveNumber()- Библиотеки
pydantic(валидация + парсинг)attrs+validatorsmarshmallow(сериализация + валидация)
- Валидация в
__init__/методах
python
def __init__(self, email):
if "@" not in email:
raise ValueError("Invalid email")
self.email = emailВыбор зависит от сложности валидации и требований к производительности. Для простых случаев хватит @property, для сложных — лучше использовать pydantic.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы