当前位置: 首页 > 面试题库 >

如何使用Sphinx的自动文档来记录类的__init __(self)方法?

翁阳曜
2023-03-14
问题内容

Sphinx默认情况下不会为__init __(self)生成文档。我尝试了以下方法:

.. automodule:: mymodule
    :members:

..autoclass:: MyClass
    :members:

在conf.py中,设置以下内容只会将__init __(self)文档字符串附加到类文档字符串(Sphinx
autodoc文档
似乎同意这是预期的行为,但未提及我要解决的问题):

autoclass_content = 'both'

问题答案:

这是三种选择:

  1. 为了确保__init__()始终记录autodoc-skip-member在文档中,可以在conf.py中使用。像这样:

    def skip(app, what, name, obj, would_skip, options):
    if name == "__init__":
        return False
    return would_skip
    

    def setup(app):
    app.connect(“autodoc-skip-member”, skip)

这明确定义了__init__不被跳过(默认情况下为跳过)。仅一次指定此配置,并且.rst源中的每个类都不需要任何其他标记。

  1. special-members选项已在Sphinx 1.1中添加。它使__special__autodoc记录“特殊”成员(名称如的成员)。

从Sphinx 1.2开始,此选项接受参数,这使其比以前更有用。

  1. 用途automethod

    .. autoclass:: MyClass
    

    :members:

    .. automethod:: init

这必须为每个类添加(不能与一起使用automodule,如对此答案的第一个修订版的注释中指出的那样)。



 类似资料:
  • 问题内容: 我有一个看起来像的文件夹结构: : : : : : : 当我直接使用该模块时,它似乎按预期工作: 但是,当我在sphinx中使用自动模块时(将项目文件夹添加到sys.path之后): 我得到的页面只有: 似乎正在忽略类型语句。 但是,如果我将所有代码直接复制到每个模块/子模块的文件中,则会得到: sphinx是否不适用于文件中具有此类导入语句的模块,还是我遗漏了一个更明显的问题? 理想

  • 问题内容: 我有一个带有数据库调用的类,并且我通常想用log4j记录该类中每个被调用的方法(带有参数): 是否可以自动执行此操作?也许通过在每种方法的开头使用某种注释,而不是编写每个logger.debug? 今天,每次更改参数或方法名称时,我都必须更新我的logging.debug。 问题答案: 从jcabi- aspects 尝试注释和AspectJ 方面(我是开发人员): 所有方法调用均通过

  • 问题内容: 我正在尝试用Python记录一个软件包。目前,我具有以下目录结构: 这棵树是开火的结果。在我没有评论,我有。 我的是: 在所有的文件中,我都有一个文档字符串,模块和。但是,在项目中运行时,我看不到任何文档。 问题答案: 这里是一个大纲: 在源文件中使用文档字符串记录您的软件包。 使用 sphinx-quickstart 创建一个Sphinx项目。 运行 sphinx-apidoc 生成

  • 问题内容: 我一直在构建具有许多不同功能的Python模块。 我正在使用Sphinx和readthedocs提供文档。我已经取得了不错的进步,但是目前我有一个庞大的页面,该页面提供了所有功能的文档(按字母顺序)。 我看过其他项目,每个项目都有单独的页面。在查看它们的源代码时,我发现已经为每个文件创建了一个单独的.rst文件。我假设这是自动完成的,并且此页面有关生成自动文档摘要的内容似乎在描述其中的

  • 问题内容: 如果我有一个python类为: 然后定义一个子类,例如: 如果基类的init函数接受某些参数,而我将它们作为子类的init函数的参数,则如何将这些参数传递给基类? 我写的代码是: 我要去哪里错了? 问题答案: 你可以用 您的缩进不正确,这是修改后的代码: 这是输出:

  • 我正在调用Apache Camel XML DSL中的Javascript文件,该文件在Apache ServiceMix中运行,如下所示: 我想在myJavascript中记录一条消息。这样消息就会显示在主Camel上下文日志中。 这里的Camel文档表示传递了CamelContext Java对象。我希望它能为记录器提供一个getter,这样我就可以在脚本中做这样的事情: 然而,这里并没有提到