Python文档字符串中的字符串操作

9 投票
2 回答
1863 浏览
提问于 2025-04-15 14:49

我一直在尝试做以下事情:

#[...]
    def __history_dependent_simulate(self, node, iterations=1,
                                     *args, **kwargs):
        """
        For history-dependent simulations only:
        """ + self.simulate.__doc___

我想要实现的是,让这个私有方法的文档和simulate方法的文档一样,只是加一个简短的介绍。这样我就可以避免复制粘贴,保持文件更简洁,而且每次更新文档时就不需要同时更新两个函数的文档了。

但是这并没有成功。有没有人知道为什么会这样,或者有没有解决办法?

2 个回答

2

我觉得这一部分说得很清楚:

什么是文档字符串(Docstring)?

文档字符串是一个字符串常量,它出现在模块、函数、类或方法定义的第一行。这样的文档字符串会成为这个对象的doc特殊属性。

所以,它不是一个会计算出字符串的表达式,而是一个字符串常量

9

一个更好的解决办法可能是使用装饰器,比如:

def add_docs_for(other_func):  
    def dec(func):  
        func.__doc__ = other_func.__doc__ + "\n\n" + func.__doc__
        return func
    return dec

def foo():
    """documentation for foo"""
    pass

@add_docs_for(foo)
def bar():
    """additional notes for bar"""
    pass

help(bar) # --> "documentation for foo // additional notes for bar"

这样你就可以对文档字符串进行各种操作了。

撰写回答