如何使 Python/Sphinx 文档对象属性仅在 __init__ 中声明?

2023-11-24

我有带有对象属性的 Python 类,这些属性仅在运行构造函数时声明,如下所示:

class Foo(object):
    def __init__(self, base):
        self.basepath = base

        temp = []
        for run in os.listdir(self.basepath):
            if self.foo(run):
                temp.append(run)
        self.availableruns = tuple(sorted(temp))

如果我现在使用help(Foo)或尝试记录Foo在狮身人面像中,self.basepath and self.availableruns属性未显示。这对于我们 API 的用户来说是一个问题。

我尝试寻找一种标准方法来确保解析器可以找到这些“动态声明”属性(最好是文档字符串),但到目前为止还没有运气。有什么建议么?谢谢。


我尝试寻找一种标准方法来确保解析器可以找到这些“动态声明”属性(最好是文档字符串),但到目前为止还没有运气。有什么建议么?

它们永远不会被任何解析器“检测到”。

Python 有setattr。从任何意义上来说,完整的属性集永远不会“可检测到”。

您绝对必须在文档字符串中描述它们。

[除非你想做一堆元编程来从你收集的东西生成文档字符串inspect或者其他的东西。即使如此,一旦您开始使用,您的“解决方案”将是不完整的setattr.]

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

如何使 Python/Sphinx 文档对象属性仅在 __init__ 中声明? 的相关文章

随机推荐

  • 如何使用 Html Agility Pack 使请求超时

    我正在向当前离线 故意 的远程 Web 服务器发出请求 我想找出使请求超时的最佳方法 基本上 如果请求运行时间超过 X 毫秒 则退出请求并返回null回复 目前 网络请求只是坐在那里等待响应 我该如何最好地解决这个问题 这是当前的代码片段
  • 将 Rust 变量传递给期望能够修改它的 C 函数

    我正在编写一个安全的 Rust 层 通过它我可以调用 Rust 中的 C 库中的函数 我已经使用生成了不安全的绑定Rust 绑定根 但我对 Rust 和 C 在传递指针方面的工作方式之间的差异感到有点困惑 C 函数如下所示 bool ime
  • VSCode 的“打开文件夹时运行”任务中的“打开文件夹时”是什么意思?

    VSCode 去年添加了一项功能 打开文件夹时 自动运行任务 但是使用工作区时 打开文件夹时 是什么意思 具体来说 如果您打开一个工作区 将会 runOn folderOpen 任务运行 如果是这样 怎么办 我这么问是因为我将一个任务配置为
  • HTML5 向后兼容 XHTML 吗?

    简短的问题 我可以将现有 XHTML 1 0 网站的 DOCTYPE 更改为 HTML5 吗 这会导致任何问题吗 很长的故事 我们有一个用 ASP NET Webforms 编写的网站 由于它相当旧 默认的 DOCTYPE 设置为 XHTM
  • 使用他的 ClassType 来转换 TObject?

    我怎样才能让我的代码工作 我试图提出这个问题 但经过几次失败的尝试后 我认为你们通过查看代码会比阅读我的 解释 更快地发现问题 谢谢 setCtrlState memo1 edit1 button1 False procedure setC
  • 带参数的 Django 重定向()

    已经有人问过几个类似的问题 但在花了很长时间后我找不到问题的答案 在下面的代码中 当我使用参数 username 从 myView 重定向到 anotherView 时 它按预期工作正常 但我也需要在此重定向中包含 范围 参数 因为重定向后
  • Android 中强制通过扬声器输出声音

    Android 有没有办法强制通过手机扬声器输出 即使耳机已插入插孔 我知道必须有一种方法 因为当您打电话时 即使插孔中插入了耳机 您也可以让某人使用免提电话 您可以使用以下命令在系统范围内更改此设置AudioManager setSpea
  • oo问题-混合控制器逻辑和业务逻辑

    我不确定我是否使用 标准 术语 但这是我试图解决的一个基本的面向对象问题 我正在编写一个 Windows 窗体 我不需要表单事件处理程序中的逻辑 因此我只需从那里调用自定义对象 在自定义对象中 有两组逻辑 控制器 逻辑 决定需要完成什么以及
  • 编译器生成的默认构造函数会是公共的吗?

    当我写一个类的时候Widget java public class Widget int data String name 编译器生成的构造函数是public or default 公众会像 public class Widget int
  • HTML 中的方括号形成数组。只是传统的还是有意义的?

    我经常看到 特别是在 PHP 世界中 如果你想创建一个 FORM 数组 可以这样写
  • 如何将 Firebase 身份验证令牌传递给 webView 并在 Android 上注册通知

    我有一个 Firebase WebApp 它向用户提供信息 除了应用程序之外 我还需要通过 Firebase 云消息传递向使用 Android 应用程序的用户发送推送通知 目标 用户应该一次登录到应用程序 既可以注册通知 又可以通过 Web
  • Google 时间轴图表持续时间(以小时为单位)

    我正在使用 Google 时间线图表 即使持续时间超过一天 我也想以小时为单位显示持续时间 是否可以 谢谢 包含一千个样本的图像 展示了不同的行为1正如您所看到的 红色的持续时间是错误的 蓝色的持续时间是计算和打印的 没有配置选项更改工具提
  • 在哪里可以找到当前的 C 或 C++ 标准文档?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 对于许多问题 答案似乎可以在 标准 中找到 然而 我们在哪里可以找到它呢 最好是在线 谷歌搜索有时会让人感到徒劳 尤其是对于 C 标准 因为它们淹没在编程论坛上
  • C 中的外部指针和静态指针

    您好 静态和外部指针的用法是什么 如果它们存在的话 为了回答您关于何时可以使用它们的问题 举几个简单的例子 静态指针可用于实现始终向程序返回相同缓冲区的函数 并在第一次调用时分配它 char GetBuffer static char bu
  • Java错误:应该在名为[重复]的文件中声明

    这个问题在这里已经有答案了 我对 Java 相当陌生 并试图弄清楚如何解决以下错误 读取错误 CalculatorWithMemory java 1 class Calculator is public should be declared
  • 如何找到最近的标记 leaflet.js

    我想知道是否真的有某种方法可以使用 leaflet js 找到我位置附近的标记 我首先想到的是存储我所在位置的纬度和经度 然后迭代一系列纬度和经度标记 将它们放入一个数组中 然后对该数组进行排序 我不确定这是否是一个好的选择 因为如果地图上
  • 路由器在 NAT 中保留记录多长时间?这些记录可以重复使用来转发来自其他主机的请求吗?

    有一个答案以简单的方式解释了路由器如何将请求从本地网络转换到外部网络并返回 https superuser com questions 105838 how does router know where to forward packet
  • 在 winapi 中拖放

    我有一个纯 Winapi 应用程序 需要一些新功能 其中之一最好实现为两个列表 您可以在列表之间拖放 多个 元素 新功能可以仅限于单个对话框 实现这一点的最快方法是什么 一些想法 纯Winapi 是DetectDrag 提供这一对话框的单独
  • Gradle resValue 导致重复字符串资源

    我的 Android 清单文件定义应用程序名称如下 android label string app name res values strings xml 中存在 app name 的相应条目 现在 在我的 build gradle 中
  • 如何使 Python/Sphinx 文档对象属性仅在 __init__ 中声明?

    我有带有对象属性的 Python 类 这些属性仅在运行构造函数时声明 如下所示 class Foo object def init self base self basepath base temp for run in os listdi