【问题标题】:String manipulation in Python docstringsPython 文档字符串中的字符串操作
【发布时间】:2009-10-05 09:27:01
【问题描述】:

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

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

我在这里试图完成的是,让这个私有方法的文档与方法 simulate 的文档相同,除了简短的介绍。这可以让我避免复制粘贴,保留更短的文件,并且不必每次都更新两个函数的文档。

但它不起作用。有谁知道原因,或者是否有解决方案?

【问题讨论】:

    标签: python string documentation


    【解决方案1】:

    更好的解决方案可能是使用装饰器,例如:

    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"
    

    这样您就可以对文档字符串进行任意操作。

    【讨论】:

    • 任意操作意味着您可以在文档字符串中添加“SEE DOCS FOR >foo
    【解决方案2】:

    我认为this section 说得很清楚:

    什么是文档字符串?

    文档字符串是一个字符串字面量 作为 a 中的第一个语句出现 模块、函数、类或方法 定义。这样的文档字符串变成 doc 的特殊属性 对象。

    所以,它不是一个计算成字符串的表达式,它是一个字符串文字

    【讨论】:

      猜你喜欢
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 2010-10-18
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多