如果您希望能够允许人们使用以下方式调用某些方法None
你必须使用哨兵对象当您定义方法时。
_sentinel = object()
def foo(param1=_sentinel):
...
这将允许你打电话foo(param1=None)
并能够区分像这样的呼叫foo()
.
问题是,当 Sphinx 记录该方法时,它会写类似的内容
mymodule.foo(param1=<object object at 0x108c1a520>)
我如何说服 Sphinx 为这些函数提供用户友好的输出?
请注意,想象一下,如果您使用哨兵方法有 3-4 个参数,文档会是什么样子。
我认为只要你有一个在函数之外创建对象的哨兵,就不可能说服 Sphinx 变得更加“友好”。 Sphinx 的 autodoc 扩展导入模块,这意味着执行模块级代码。
你确定你不能使用这样的东西吗?
def foo(param1=None):
if param1 == None:
param1 = whatever you want...
else:
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)