Используйте аргументы, состоящие только из ключевых слов, в классах данных Python ( chipx86.blog )
Определенно лучшая практика для любого языка, который его поддерживает. У меня есть кодовая база, которую мне нужно поддерживать с некоторыми функциями, имеющими 12+ неименованных аргументов. Это безумие. Я обновился до версии, которая поддерживает именованные параметры, и медленно конвертирую код, поскольку мне нужно их коснуться.
Вы могли бы утверждать то же самое (принудительное использование kwargs) для всех функций/методов Python, хотя это сделало бы использование ваших API очень раздражающим. Метод `__init__` для классов данных — это просто еще один метод, как и любой другой.
Как правило, я начинаю принудительно применять kwargs только после того, как увижу более 4-5 аргументов, или если аргументы достаточно похожи, чтобы принудительное применение kwargs сделало вызывающий код более читабельным. Для небольшого количества отдельных аргументов принудительное применение kwargs в качестве общего правила делает код многословным, а пользы от этого мало, на мой взгляд.
Source: news.ycombinator.com