2012-01-11 78 views
0

我发现使用setattr()来制作动态生成的类方法和属性有很大的用处。我也一直在使用狮身人面像来创建文档,这非常棒。狮身人面像自动摘要和动态方法

问题是,如果属性和方法是动态的,我不能使用sphinx的自动摘要功能。有没有一个聪明的方法来做到这一点?动态方法和属性在初始化时创建。

+0

您是否正在设置动态方法的__doc__属性? – jterrace 2012-01-11 16:06:28

+0

是的,所以他们的文档在使用help()命令时工作正常,但sphinx并没有将它们包含在autoclass中,因为这些方法是在类被初始化之前生成的。 – alex 2012-01-13 20:25:50

回答

0

试试这个(这是一个有点古怪的):

  1. conf.py文件创建类的实例。
  2. 使用autodoc-process-docstring事件触发一个处理程序(您需要编写该程序),以便将您在1)中创建的实例中各种动态方法的__doc__元素复制到类的输出中。

这不是一个简单的解决方案,也不容易,甚至可能甚至不可能,但如果你能弄清楚如何在适当的时间让事情发生,那么它可能会工作。