我有带有对象属性的 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(使用前将#替换为@)