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

标签 python python-sphinx default-parameters

如果您希望能够允许人们使用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/

相关文章:

stored-procedures - 如何在存储过程中设置默认日期时间参数?

python - virtualenv 使用升级后的系统默认 pip

当我运行脚本时,Python 3.6 不是默认的

python - 在达到一定的准确性后,有什么方法可以停止在 Keras 中训练模型?

latex - 如何为Latex/PDF输出添加图形/表格列表?

C++选择 'wrong'带默认参数的重载方法

scala - 使用参数默认值键入删除

python - 连接/连接/合并两个缺失一列的数据框

python - 如何使用 Doxygen 记录 Python 代码

python - 在 Python 文档中嵌入图像