Python文档字符串中的字符串操作
我一直在尝试做以下事情:
#[...]
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"
这样你就可以对文档字符串进行各种操作了。