在我看来,我遇到了这种奇怪的行为:
"a b c".split(maxsplit=1)
TypeError: split() takes no keyword arguments
为什么str.split()不接受关键字参数,即使它有意义?我在Python2和Python3中都发现了这种行为。
答案 0 :(得分:33)
str.split()
是CPython中的本机函数,因此展示了here所描述的行为:
CPython实现细节:实现可能提供内置功能 位置参数没有名称的函数,即使它们也是如此 为了文档的目的而被“命名”,因此 不能通过关键字提供。在CPython中,情况就是如此 在C中实现的函数,使用
PyArg_ParseTuple()
来解析它们 参数。
答案 1 :(得分:16)
str.split
是在C中实现的内置方法。不幸的是,一些内置函数/方法不接受关键字参数。请参阅this bug report。