首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python接受CPython函数中的关键字参数吗?

Python接受CPython函数中的关键字参数吗?
EN

Stack Overflow用户
提问于 2012-11-04 08:03:04
回答 1查看 660关注 0票数 7

我使用python3.3并发现它在一些CPython函数中接受关键字参数:

代码语言:javascript
复制
>>> "I like python!".split(maxsplit=1)
['I', 'like python!']

但是其他一些函数不接受关键字参数:

代码语言:javascript
复制
>>> sum([1,2,3,4], start = 10)
Traceback (most recent call last):
  File "<pyshell#58>", line 1, in <module>
    sum([1,2,3,4], start = 10)
TypeError: sum() takes no keyword arguments

我的问题是:这些功能之间有什么区别?CPython中哪些函数接受关键字参数,哪些函数不接受?当然-为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-04 08:11:59

使用CPython函数解析其参数的ParseTuple()不支持关键字参数(主要是因为PyArg_ParseTuple()只支持位置参数,例如简单的序列)。

这在CPython implementation details 这里中有解释。

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

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13217056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档