Встречается на 1% собеседований по Python
Какие знаешь способы реализовать класс по проверки получаемых данных
В 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
интервью вопросы и ответы