为什么str.split不接受关键字参数?

时间:2012-07-30 06:59:00

标签: python standard-library cpython string-split

在我看来,我遇到了这种奇怪的行为:

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

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

2 个答案:

答案 0 :(得分:33)

请参阅this bugits superseder

str.split()是CPython中的本机函数,因此展示了here所描述的行为:

  

CPython实现细节:实现可能提供内置功能   位置参数没有名称的函数,即使它们也是如此   为了文档的目的而被“命名”,因此   不能通过关键字提供。在CPython中,情况就是如此   在C中实现的函数,使用PyArg_ParseTuple()来解析它们   参数。

答案 1 :(得分:16)

str.split是在C中实现的内置方法。不幸的是,一些内置函数/方法不接受关键字参数。请参阅this bug report