我有以下方式声明的Python类:
它们是
我只想澄清一下,
这里让我感到困惑的是,我想添加这些变量的描述。自动生成程序将它们称为“结构/联合成员”,这很有道理,因为它们是结构的成员,但我想添加更详细和有用的描述。例如,我想添加一个注释,说明“vm”代表幅度,“va”代表角度。
class Foo(Structure):
_fields_ = [
("vr", c_double),
("vi", c_double),
("vm", c_float),
("va", c_float)]
它们是
Structure
的子类,因为我使用ctypes
来包装C DLL,这些是C结构体的镜像。我无法弄清楚如何为这些生成文档。自动生成的文档非常丑陋和无用:
va
Structure/Union成员
vi
Structure/Union成员
vm
Structure/Union成员
vr
Structure/Union成员
有人有任何想法如何定义这些吗?我只想澄清一下,
_fields_
实际上并不存在。它是ctypes
的一个特殊功能,提供了一种声明成员的方式,使您可以将其与C结构对齐。因此,如果我实例化对象:foo = Foo()
,那么我永远不会访问_fields_
,而是直接访问成员,就像它们是普通的实例变量一样声明。因此,使用上面的实例,要访问vr
,我会做类似这样的事情:print foo.vr
。这里让我感到困惑的是,我想添加这些变量的描述。自动生成程序将它们称为“结构/联合成员”,这很有道理,因为它们是结构的成员,但我想添加更详细和有用的描述。例如,我想添加一个注释,说明“vm”代表幅度,“va”代表角度。
Foo
类应该有一个文档字符串。在这个文档字符串中,你可以描述_fields_
变量。也许可以直接包含它的定义原文。这是我能想到的。 - mzjn:undoc-members:
选项到automodule
吗?因为如果我使用它,我会得到自动生成的输出,而你不喜欢。 - mzjn:undoc-members:
后,所有自动生成的东西都消失了,现在我可以自由地覆盖它。这有点烦人,因为这意味着我现在必须去记录每一件事情,而不是逐步完成,但至少现在已经处理好了。请随意将其放入答案中,我会接受它。 - zaknotzach