我正在编写一些文档,其中列出了鸭子类型对象必须具有的实现特定接口(interface)的属性。我尝试做这样的事情:
List of required attributes:
.. py:attribute:: x
The x-coordinate, as a :py:class:`float`.
.. py:attribute:: y
The y-coordinate, as a :py:class:`float`.
我期望获得带有描述的属性列表,但文档最终的名称不是简单的名称,而是包含先前的 .. py:currentmodule
指令。因此,我最终得到的是 my.current.module.x
,而不是 x
。
有没有办法执行以下任一操作:
- 关闭
.. py:currentmodule::
。我尝试将其设置为空字符串以及.
,但这只是生成了一个警告并继续使用先前的值。 - 将生成的属性名称配置为不将模块包含在名称中(最好也包含在链接中)。
我更喜欢选项#2,因为我实际上在文档中具有指向当前模块中对象的链接,因此最好在不实际更改当前模块的情况下明确这些属性不在模块中。
目前,我的解决方法是临时设置 .. py:currentmodule::duck
,并在该段之后恢复。
我还尝试将属性文档编写为 .. py:attribute::~x
、.. py:attribute::!x
和 .. py:attribute::.x
。所有情况都在名称中包含特殊字符,前两种情况无法生成属性的 anchor 。
最佳答案
您可以set currentmodule
to None
在这些对象之前:
.. currentmodule:: None
而且,如果稍后您确实希望为当前模块添加其他对象的前缀,您也可以重新设置该模块:
.. currentmodule:: your.module
关于python - 取消设置或关闭当前模块的某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50221980/