我应该记录类似函数签名的参数吗?

2024-01-09

我有一些辅助函数,除了第一个参数之外,它们采用与核心函数相同的参数。这些参数被完整记录在核心函数中。我是否也应该将此文档复制粘贴到辅助函数中,或者只是指向核心文档?

重要的是,我主要希望将我的 API 参考作为 Sphinx 生成的 HTML 来读取,并且我使用 numpydoc 样式。我在 中没有找到答案numpydoc 手册 https://numpydoc.readthedocs.io/en/latest/.

EDIT

这是一个 MWE:

def core(param0, param1=3, param2=8):
    """Core function with thorough documentation.

    Parameters
    ----------
    param0 : ndarray
        Description.
    param1 : int
        Long description.
    param2 : int
        Long description.

    Returns
    -------
    param_out : ndarray
        Long description

    """
    pass
def helper(param3, param1=3, param2=8):
    """Helper function.

    """
    pass

正如您所看到的,两个函数中只有第一个参数不同。


最好、最简单的方法是使用Python Sphinx 文档字符串部分 https://www.sphinx-doc.org/en/master/usage/extensions/napoleon.html#docstring-sections来自sphinx.ext.napoleon扩大。

仅针对特定的参数辅助函数需要明确记录,您可以交叉引用汇出 https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#cross-referencing-python-objects定义共享参数的函数/方法。这Python 的 Google 风格指南 https://google.github.io/styleguide/pyguide.html#383-functions-and-methods对于重载从基类继承的方法,建议采用相同的推理:

重写基类方法的方法可能有一个简单的文档字符串,将读者发送到其重写方法的文档字符串,例如“”“参见基类。”“”。理由是不需要在许多地方重复基本方法的文档字符串中已经存在的文档。但是,如果重写方法的行为与被重写方法有很大不同,或者需要提供详细信息(例如,记录其他副作用),则重写方法需要至少具有这些差异的文档字符串。

  • Args:

    按名称列出每个参数。描述应该跟在名称后面,并用冒号和空格分隔。

下面的例子:

def core(param0, param1=3, param2=8):
    """Core function with thorough documentation.

    Parameters
    ----------
    param0 : ndarray
        Description.
    param1 : int
        Long description.
    param2 : int
        Long description.

    Returns
    -------
    param_out : ndarray
        Long description

    """
    pass

def helper(param3, param1=3, param2=8):
    """Remaining

    Parameters
    ----------
    param3 : int
        Description.
    Other Parameters
        A short string remitting reader to :py:func:`core` function.
    See Also
        A short string remitting reader to :py:func:`core` function.
    Note
        A short string remitting reader to :py:func:`core` function.
    """
    pass

会给出这样的结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我应该记录类似函数签名的参数吗? 的相关文章

随机推荐

  • 从 python subprocess.Popen(command, stderr=subprocess.PIPE, stdout=subprocess.PIPE) 捕获 stderr

    我在这里多次看到这个帖子 但未能捕获命令中的故意错误 迄今为止我发现的最好的部分工作 from Tkinter import import os import Image ImageTk import subprocess as sub p
  • 尽管主题接下来调用,但指令订阅不会触发

    Plunkr https plnkr co edit KfPfVSbZm087uIPvFEkM p preview https plnkr co edit KfPfVSbZm087uIPvFEkM p preview 我有一个充当模式组件
  • 使用 Zend 进行领域驱动设计

    这个问题是我之前问题的延续zend 模型架构 https stackoverflow com questions 2122850 zend models architecture 非常感谢比尔 卡尔文 我读过一些书 包括这篇文章 http
  • 在 Python 中打印时处理 NoneType 对象的好方法

    如何在 Python 中打印 NoneType 对象 score can be a NonType object logging info NEW SCORE score 另外 为什么有时我会看到逗号而不是上面的 最好的方法是 loggin
  • 跟踪数组中的最小数字

    我试图跟踪最低数字的分数 如果我找到这些玩家的最低分数 我不希望他们在下一轮中再次参加比赛 我已经到了将那些低玩家价值存储到数组中的地步 但我只想将它们存储一次 for int i 0 i lt player length i for in
  • 回收者视图内动态视图的问题

    我正在使用回收器视图来显示包含图像网格布局的项目列表 网格布局动态添加到回收器视图适配器上 onBindViewHolder 方法内的列表项 现在的问题是 每次滚动时都会重新创建网格布局视图 我不希望在滚动时重新创建这些视图 怎么处理呢 这
  • 多个附件 django 电子邮件

    您好 我尝试发送带有多个附件的电子邮件 如 pdf xml 等 但出现错误 list object has no attribute rfind 这是我的代码 from security views import SendEmail Env
  • 我们如何显示来自 Picasa java API 的照片?

    好吧 这似乎是一个愚蠢的问题 因为我们有this http code google com intl en apis picasaweb docs 2 0 developers guide java html 但是 到目前为止 我只能使用以
  • 传递 MethodHandles.lookup().lookupClass() 与传递 Class 到 getLogger 方法

    我最近遇到了一个声明如下的记录器 private static final Logger logger LoggerFactory getLogger MethodHandles lookup lookupClass 与像这样 正常 声明相
  • Symfony2.1 - 使用 DataTransformer 时选项“em”不存在

    我在用this http symfony com doc master cookbook form data transformers html在 Symfon 2 1 中添加数据转换器的食谱食谱 但我收到以下错误 The option e
  • _GLIBCXX_USE_CXX11_ABI 在 RHEL6 和 RHEL7 上禁用?

    我在 RHEL6 和 RHEL7 上安装了 gcc 5 2 1 看起来 GLIBCXX USE CXX11 ABI 被禁用了 即使我手动运行也不起作用 D GLIBCXX USE CXX11 ABI 1 std c 14 这意味着我不会获得
  • 从 django 循环中提取值

    我有一个 Django 应用程序 我在模板中使用以下内容 load mptt tags ul recursetree nodes li node name if not node is leaf node ul class children
  • 如何运行量角器?

    我对量角器很陌生 我在 Windows 命令行中运行它 我按照这个教程进行操作https github com angular protractor blob master docs getting started md https git
  • IBM Worklight - 在服务器端包含 JavaScript 库

    我正在使用 IBM Worklight 构建移动应用程序 在适配器中 我需要使用第三方 JavaScript 文件提供的一些功能 我想知道是否可以在服务器上包含这样的文件 如果不是 还有什么替代方案 目前无法在适配器代码中包含外部 Java
  • Spring REST API 中的 Json 模式验证

    我正在使用 Spring Boot 和 jackson module jsonSchema 构建 REST API https github com FasterXML jackson module jsonSchema https git
  • 为具有相同类的元素添加点击事件监听器

    我有一个删除 id 的列表视图 我想为具有特定类的所有元素添加一个侦听器 并执行确认警报 我的问题是 这似乎只将侦听器添加到它找到的类的第一个元素 我尝试使用querySelectorAll但没有成功 var deleteLink docu
  • 将命令行 tf checkin 链接到工作项

    我想通过以下方式将文件提交到 TFS 存储库tf命令行工具并将提交链接到 TFS 工作项 我该怎么做 我已经提交了我的文件 但没有指向工作项目的链接 我的命令添加一个新文件并提交更改 gt tf add foo cpp gt tf chec
  • 如何使用 Zeppelin 访问 aws spark-ec2 集群和 s3 存储桶

    我有一个通过 Spark ec2 脚本设置的 aws ec2 集群 我想配置 Zeppelin 以便我可以在 Zeppelin 本地编写 scala 代码并在集群上运行它 通过 master 此外 我希望能够访问我的 s3 存储桶 我跟着本
  • 无法加载文件或程序集>'System.Windows,版本=2.0.5.0

    首次加载 Silverlight 应用程序时 我不断收到此错误 无法加载文件或程序集 系统 Windows 版本 2 0 5 0 文化 中立 PublicKeyToken 7cec85d7bea7798e 或 它的依赖项之一 系统 找不到指
  • 我应该记录类似函数签名的参数吗?

    我有一些辅助函数 除了第一个参数之外 它们采用与核心函数相同的参数 这些参数被完整记录在核心函数中 我是否也应该将此文档复制粘贴到辅助函数中 或者只是指向核心文档 重要的是 我主要希望将我的 API 参考作为 Sphinx 生成的 HTML