Django/DRF: Можно ли сделать методы валидации статическими?

В попытке сделать свой код как можно более чистым, я делаю пропуск, чтобы добавить @staticmethod ко всем методам, которые не используют self. В DRF типичный метод валидации выглядит следующим образом:

    def validate_website(self, value):
        value = value.strip()
        if len(value) > 200:
            raise ValidationError(_('Website may have up to 200 characters.'))
        return value

Другими словами, валидные методы почти всегда используют value вместо self, поэтому они являются кандидатами на статус @staticmethod. В дополнение к желанию устранить раздражающие подчеркивания, которые моя IDE ставит под именем метода, чтобы сообщить мне, что он "может быть статическим", я думаю, что наверняка есть некоторые накладные расходы, связанные с передачей self каждому методу. Поэтому устранение этих накладных расходов, если они не нужны, не может быть плохой вещью, верно?

Итак, два вопроса... 1) Можно ли добавить @staticmethod к этим методам проверки?; и, 2) Стоит ли это делать с точки зрения производительности?

Вернуться на верх