Почему именно str.сплит не принимает ключевые аргументы?


Я столкнулся с этим - на мой взгляд-странным поведением:

"a b c".split(maxsplit=1)
TypeError: split() takes no keyword arguments

Почему str.split() не принимает аргументы ключевых слов, хотя это имело бы смысл? Я обнаружил это поведение как в Python2, так и в Python3.

2 31

2 ответа:

Смотрите этот баг и его заменитель.

str.split() является нативной функцией в CPython и в качестве таковой демонстрирует поведение, описанное здесь:

CPython деталь реализации: реализация может обеспечить встроенный функции, позиционные параметры которых не имеют имен, даже если они "названы" в целях документирования, и которые поэтому не может быть передано по ключевому слову. В CPython это имеет место для функции реализовано в C, которые используют PyArg_ParseTuple() для разбора их аргументы.

str.split является встроенным методом, реализованным в C. К сожалению, некоторые встроенные функции / методы не принимают аргументы ключевых слов. Смотрите Этот отчет об ошибке.