斯芬克斯装饰类没有记录

2024-09-29 01:30:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用狮身人面像记录我的图书馆。我有装饰师logic_object

class logic_object:
    """Decorator for logic object class.
    """
    def __init__(self, cls):
        self.cls = cls
        self.__doc__ = self.cls.__doc__

我有一个由logic_object修饰的gravity类:

^{pr2}$

我的狮身人面像文件是:

Mind.Existence
========================
Classes, methods and functions marked with * aren't for usual cases, they are made to help to the rest of the library.

.. automodule:: Mind.Existence
   :members:
   :member-order: bysource

logic_objectautodoc一起记录,但是gravity没有

为什么会发生这种情况?如何解决?在


Tags: thetoselffordocobject图书馆记录
1条回答
网友
1楼 · 发布于 2024-09-29 01:30:22

这是因为修饰类不是真正的类对象(不是type的实例),因此autodoc不知道如何对其进行文档化。在

要修复它,您必须编写一个自定义文档管理器(例如配置文件)公司名称:

from Mind.Existence import logic_object
from sphinx.ext.autodoc import ClassDocumenter

class MyClassDocumenter(ClassDocumenter):
    objtype = 'logic_object'
    directivetype = 'class'

    @classmethod
    def can_document_member(cls, member, membername, isattr, parent):
        return isinstance(member, logic_object)

def setup(app):
    app.add_autodocumenter(MyClassDocumenter)

然后(在decorator中)还必须从装饰对象复制__name__和{}:

^{pr2}$

嗯, 卢克

相关问题 更多 >