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

问题描述 投票:8回答:2

我有带有对象属性的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)或尝试在Sphinx中记录Foo,则不会显示self.basepathself.availableruns属性。对于我们的API用户来说,这是个问题。

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

python attributes python-sphinx docstring
2个回答
1
投票
您可以定义一个与实例变量同名的类变量。当您设置它时,该实例变量将被实例变量遮盖。例如:

10
投票
我已经尝试寻找一种标准方法来确保解析器可以找到这些“动态声明的”属性(最好是docstring'd),但到目前为止还算运气。有什么建议?
© www.soinside.com 2019 - 2024. All rights reserved.