Ruff dunder-function-name (N807)
dunder-function-name в Ruff проверяет, что функции с "dunder" именами (то есть с двумя подчеркиваниями в начале и в конце) используются только, если они документированы в Python.
Почему это неправильно
PEP 8 рекомендует использовать "dunder" имена только в случаях, когда они официально задокументированы:
- "Магические" (dunder) объекты или атрибуты, такие как __init__, __import__ или __file__, предназначены для особых случаев, определенных в Python.
- Никогда не создавайте собственные "dunder" имена, так как это может привести к путанице и конфликтам с внутренними механизмами Python.
Использование нестандартных "dunder" имен функций может нарушить предсказуемость кода и вызвать неожиданные ошибки.
Пример ошибки
def __my_function__():
pass # Некорректное использование "dunder" имени
Как правильно
def my_function():
pass # Обычное имя функции без "dunder"