Почему именно str.сплит не принимает ключевые аргументы?
Я столкнулся с этим - на мой взгляд-странным поведением:
"a b c".split(maxsplit=1)
TypeError: split() takes no keyword arguments
Почему str.split() не принимает аргументы ключевых слов, хотя это имело бы смысл? Я обнаружил это поведение как в Python2, так и в Python3.
2 ответа:
Смотрите этот баг и его заменитель.
str.split()
является нативной функцией в CPython и в качестве таковой демонстрирует поведение, описанное здесь:CPython деталь реализации: реализация может обеспечить встроенный функции, позиционные параметры которых не имеют имен, даже если они "названы" в целях документирования, и которые поэтому не может быть передано по ключевому слову. В CPython это имеет место для функции реализовано в C, которые используют
PyArg_ParseTuple()
для разбора их аргументы.
str.split
является встроенным методом, реализованным в C. К сожалению, некоторые встроенные функции / методы не принимают аргументы ключевых слов. Смотрите Этот отчет об ошибке.