【发布时间】:2016-06-30 13:55:25
【问题描述】:
我有一堂课MyClass:
class MyClass(object):
def __init__(self):
pass
def my_function(self, x):
# MyClass.my_function.__doc__ is not writable!
# Otherwise, I could just set it here.
Origin.func(self, x)
类借用Origin:
class Origin(object):
def func(obj, x):
"""This is a function
"""
# do stuff
pass
如何自动将文档字符串从 Origin.func 复制到 MyClass.my_function 以便 Sphinx Autodoc 识别它?以及如何通过几个词来扩展原始文档字符串?
编辑:
Afaik,我不能在函数定义后更改 __doc__,因为那时 Sphinx 找不到它。或者如果有,“docfix”会去哪里?
【问题讨论】:
-
您能否举一个不那么抽象的例子来说明您想要实现的目标?
my_function.__doc__ = Origin.func.__doc__ + 'also this'应该在my_function的定义结束后正常工作。 -
我不确定如何让它更清楚——不过我编辑了我的问题。有帮助吗?
-
哦,我明白了!我可以在类的定义之后写它。这确实有效!
-
您应该能够在类中执行此操作,就在方法定义之后。但是,在一个不继承的类中有一个方法继承文档似乎很奇怪!
-
它背后的想法是我想组合一个类(而不是继承),但有些方法只是从其他类中复制过来并稍作更正。因此,参数等都保持不变。我正在做的事情还有另一种方法吗?例如,我有一个
to_latex方法。在我的组合类中,完成了一些后处理(作为包装器),但调用与原始类相同。
标签: python python-sphinx composition docstring