gpt4 book ai didi

python - 使用带有哨兵对象的默认参数的 Sphinx python 方法进行记录?

转载 作者:行者123 更新时间:2023-11-28 17:52:32 25 4
gpt4 key购买 nike

如果您希望能够允许人们使用None 调用某些方法,您必须使用sentinel object。当你定义方法时。

 _sentinel = object()
def foo(param1=_sentinel):
...

这将允许您调用 foo(param1=None) 并且能够区分 foo() 之类的调用。

问题是,当 Sphinx 记录方法时,它会写类似的东西

mymodule.foo(param1=<object object at 0x108c1a520>)

我如何说服 Sphinx 为这些函数提供用户友好的输出?

请注意,想象一下如果您使用标记方法有 3-4 个参数,文档会是什么样子。

最佳答案

我认为只要你有一个在函数外创建对象的哨兵,就不可能说服 Sphinx 变得更“友好”。 Sphinx 的自动文档扩展 imports the module ,这意味着执行模块级代码。

你确定你不能使用这样的东西吗?

def foo(param1=None):
if param1 == None:
param1 = whatever you want...
else:
...

关于python - 使用带有哨兵对象的默认参数的 Sphinx python 方法进行记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6978328/

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