gpt4 book ai didi

Python 在 CPython 函数中接受关键字参数?

转载 作者:太空狗 更新时间:2023-10-29 21:32:13 25 4
gpt4 key购买 nike

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

>>> "I like python!".split(maxsplit=1)
['I', 'like python!']

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

>>> 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 中的哪些函数接受关键字参数,哪些函数不接受?当然 - 为什么?

最佳答案

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

这在CPython 实现细节中有解释 here :

CPython implementation detail: An implementation may provide built-in functions whose positional parameters do not have names, even if they are ‘named’ for the purpose of documentation, and which therefore cannot be supplied by keyword. In CPython, this is the case for functions implemented in C that use PyArg_ParseTuple() to parse their arguments.

关于Python 在 CPython 函数中接受关键字参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13217056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com