gpt4 book ai didi

python - CPython 扩展的基于关键字的文档

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:12 29 4
gpt4 key购买 nike

应该如何编写 CPython 扩展,以便 pydoc 提及参数名称而不是 (...)

我关注了 official python tutorial about extending Python ,甚至对于 keywdarg.parrot 过程,我得到:

$> pydoc kewdarg.parrot

parrot(...)
Print a lovely skit to standard output.

而我希望

parrot(voltage, state="a stiff", action="voom", type="Norwegian Blue")
Print a lovely skit to standard output.

最佳答案

查看 sources of pydoc ,如果我没记错的话,产生 '...' 的节是:

if inspect.isfunction(object):
args, varargs, varkw, defaults = inspect.getargspec(object)
argspec = inspect.formatargspec(
args, varargs, varkw, defaults, formatvalue=self.formatvalue)
if realname == '<lambda>':
title = '<strong>%s</strong> <em>lambda</em> ' % name
argspec = argspec[1:-1] # remove parentheses
else:
argspec = '(...)'

因此,inspect.isfunction(object) 在 CPython 扩展的情况下返回 False。由于 inspect.isfunction() 检查对象是 Python 函数,而 C 扩展函数被认为是 builtins,那么上面的代码将返回 False,我们得到 ( ...) 在输出中。

关于python - CPython 扩展的基于关键字的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29131994/

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