Объеденить 3 валидации в одну (Python)

Есть 3 поля, которые проходят валидацию (при регистрации нового пользователя): username, password и год рождения. username проверяется на уникальность, пароль на сложность, а год просто на формат 1900 < age < текущий год.

Для каждого поля есть функция конкретно под проверку этого поля, но эти функции по сути практически одинаковы. В реальном проекте такое было бы уместно?

Есть ли смысл писать одну большую функцию, которая сначала понимает что это за поле, а потом его проверяет? Ещё смотрю в сторону ООП, но я сейчас вообще не понимаю его принципов.

Как сделать правильно? Как делают в коммерческой разработке?


Ответы (1 шт):

Автор решения: tiovi

В таком случае советую подучить ООП.

Правильнее будет сделать класс и в нем объявить функции для проверки имени, пароля и года рождения.

Это позволит сделать код модульным и его будет легко поддерживать.

Например:

class Validate:
    @staticmethod
    def validate_user_name(username):
       pass # здесь ваша логика функции

    Validate.validate_user_name('какое-то имя')

Таким образом вы можете добавлять в класс другие функции, например, для проверки пароля или даты рождения.

→ Ссылка