0

当使用 sphinxautodoc扩展创建文档时,我如何记录一个类实例(而不是类本身),就好像它是一个函数一样?类__call__定义了一个方法。

4

2 回答 2

1

可以使用 sphinx 扩展来解决问题。对我来说,以下就足够了:

  1. conf.py

    1. sys.path在中添加适当的路径conf.py
    2. 替换为列表中sphinx.ext.autodoc的新模块名称extensions
  2. 在新模块中:

    1. 进口sphinx.ext.autodoc
    2. 创建一个子类.autodoc.FunctionDocumenter
    3. 创建调用然后调用setup(app)的函数.autodoc.setup()app.add_autodocumenter(SubclassName)

请注意,这将替换 documenter 的功能,因此您需要使其对它们有用。可以通过使用唯一objtype字符串定义类常量作为值来避免该问题,但这将需要更多的工作。关心常规功能更容易。

如果有人感兴趣,代码就在这里。

于 2013-03-17T16:44:43.507 回答
0

具体我不熟悉autodoc,但你可以试试这个:

class MyClass(object):
    ...
    def __call__(self):
        ...

c = MyClass()
"""
this is a function-like object.
"""

c2 = MyClass()
"""
this is another function-like object.
"""

或这个:

#: this is a function-like object.
c = MyClass()
于 2013-03-16T20:52:30.993 回答