Sobes.tech
Back to questions
Junior — Middle
76

Какими методами можно реализовать класс для валидации входных данных?

Answer from AI

sobes.tech AI

Для реализации класса валидации входных данных в Python можно использовать несколько подходов:

  1. Методы класса — написать методы, которые проверяют отдельные условия (например, проверка типа, диапазона, формата).

  2. Использование исключений — при обнаружении ошибки выбрасывать исключение, чтобы обработать некорректные данные.

  3. Регулярные выражения — для проверки строк на соответствие шаблонам.

  4. Использование сторонних библиотек — например, 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)  # Если данные некорректны, будет исключение