31

我遇到了这个 - 在我看来 - 奇怪的行为:

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

为什么 str.split() 不接受关键字参数,即使它是有意义的?我在 Python2 和 Python3 中都发现了这种行为。

4

2 回答 2

33

请参阅此错误及其取代者

str.split()是 CPython 中的本机函数,因此表现出此处描述的行为:

CPython 实现细节:实现可以提供其位置参数没有名称的内置函数,即使它们是出于文档目的而“命名”的,因此不能由关键字提供。PyArg_ParseTuple()在 CPython 中,在 C 中实现的用于解析其参数的函数就是这种情况。

于 2012-07-30T07:07:14.610 回答
16

str.split是用 C 实现的内置方法。不幸的是,一些内置函数/方法不接受关键字参数。请参阅此错误报告

于 2012-07-30T07:07:05.763 回答