当前位置: 首页 > 面试题库 >

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

萧鹏云
2023-03-14
问题内容

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

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

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


问题答案:

见这个bug和它的superseder。

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

CPython实现细节:
一个实现可能会提供内置函数,这些函数的位置参数没有名称,即使出于文档目的而对其进行了“命名”,因此也无法通过关键字提供。在CPython中,使用C实现的PyArg_ParseTuple()用于解析其参数的函数就是这种情况。



 类似资料:
  • 我的脚本将,作为参数: 但当我将它作为分隔符传递时,它是空的 我知道在参数/参数解析中很特殊,但我以和引用的形式使用它。 为什么它不起作用?我使用的是Python 3.7.3 这是测试代码: 当我运行它作为它打印空。

  • 问题内容: 我已经尝试了本文和Cassandra doc中的 所有措施。 我已经尝试运行所有版本的Cassandra,包括tarball和Debian软件包中的最新版本3.7,但是执行时总是出错。 错误: 连接错误:(“无法连接到任何服务器”,{‘127.0.0.1’:TypeError(’ref()不带有关键字参数’,)}) 我将Linux Mint从17.3升级到18之前,运行Cassandr

  • 问题 你希望函数的某些参数强制使用关键字参数传递 解决方案 将强制关键字参数放到某个*参数或者单个*后面就能达到这种效果。比如: def recv(maxsize, *, block): 'Receives a message' pass recv(1024, True) # TypeError recv(1024, block=True) # Ok 利用这种技术,我们还能在接受

  • Hadoop新手,使用本教程:https://acadgild.com/blog/streaming-twitter-data-using-flume/捕捉推文。这是我的水槽。conf文件: 它流式传输推特很好,它正确地保存到我想要的目录中,但它似乎在流式传输所有内容,而没有对我的关键字进行过滤。我收到了来自世界各地的推特,除了有那个标签。 可能是什么问题?

  • 但是在scala中我需要使用: scala版本是有意义的,因为注释需要一个字符串数组。但是为什么上面的工作在java中,它不应该给出编译时错误吗? 下面的类'ArrayChecker'(我编写了一个类来说明这一点)会导致java编译时错误: