Back to questions
Junior — Middle
76
Какими методами можно реализовать класс для валидации входных данных?
Answer from AI
sobes.tech AI
Для реализации класса валидации входных данных в Python можно использовать несколько подходов:
-
Методы класса — написать методы, которые проверяют отдельные условия (например, проверка типа, диапазона, формата).
-
Использование исключений — при обнаружении ошибки выбрасывать исключение, чтобы обработать некорректные данные.
-
Регулярные выражения — для проверки строк на соответствие шаблонам.
-
Использование сторонних библиотек — например,
pydanticилиcerberusдля более сложной валидации.
Пример простого класса валидации:
import re
class Validator:
def is_email(self, value):
pattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'
return bool(re.match(pattern, value))
def is_positive_int(self, value):
return isinstance(value, int) and value > 0
def validate_user(self, data):
if not self.is_email(data.get('email', '')):
raise ValueError('Invalid email')
if not self.is_positive_int(data.get('age', 0)):
raise ValueError('Age must be positive integer')
# Использование
validator = Validator()
user_data = {'email': 'test@example.com', 'age': 25}
validator.validate_user(user_data) # Если данные некорректны, будет исключение