代码之家  ›  专栏  ›  技术社区  ›  Brad Solomon kartick shaw

在类方法docstrings中使用字符串格式

  •  3
  • Brad Solomon kartick shaw  · 技术社区  · 7 年前

    __doc__ 在类方法之后定义。

    capture_doc = """
    %(direc)s normal.
    
    a %(sym)s b."""
    
    class Cls():    
        def a(self):
            pass
        def b(self):
            pass
        a.__doc__ = capture_doc % {'direc' : 'below', 'sym' : '<'}     
        b.__doc__ = capture_doc % {'direc' : 'above', 'sym' : '>'}
    
    c = Cls()    
    print(c.a.__doc__)
    
    below normal.
    
    a < b.
    

    问:有Python文档或PEP规定的方法来做到这一点吗?我想保持基本的东西,我见过使用 @Appender decorator

    1 回复  |  直到 7 年前
        1
  •  8
  •   Moses Koledoye    7 年前

    你不应该这样做。您似乎认为您的docstring应该只为那些使用您的代码并需要它的人服务 它是如何工作的。

    docstring应该为相关对象提供某种形式的文档 你的代码,所以这使你的docstring价值减半。我怀疑任何人都不愿意经历格式化这些字符串(在他们的头脑中或使用解释器)的麻烦,以了解代码的功能或工作方式。

    PEP 257 :

    什么是文档字符串?

    字符串文字 它作为第一个语句出现 在模块、函数、类或方法定义中。这样的 成为 __doc__ 该对象的特殊属性。

    [ Emphasis矿山

    对于您的实现,有人可能会迂腐地说您没有docstring,尽管 属性。