代码之家  ›  专栏  ›  技术社区  ›  Bartosz Radaczyński

数据文档字符串?

  •  20
  • Bartosz Radaczyński  · 技术社区  · 16 年前

    有没有一种方法可以像docstring描述模块或函数那样描述模块的数据?

    class MyClass(object):
        def my_function():
            """This docstring works!"""
            return True
        my_list = []
        """This docstring does not work!"""
    
    3 回复  |  直到 14 年前
        1
  •  14
  •   codeape    16 年前

    据我所知,无法将docstring分配给模块数据成员。

    PEP 224 建议此功能,但PEP被拒绝。

    我建议您在模块的docstring中记录模块的数据成员:

    # module.py:
    """About the module.
    
    module.data: contains the word "spam"
    
    """
    
    data = "spam"
    
        2
  •  10
  •   Dzinx    16 年前

    可以使用 epydoc 语法。epydoc是Python最常用的文档工具之一。

    记录的语法是 #: 在变量初始化行上方,如下所示:

    # module.py:
    
    #: Very important data.
    #: Use with caution.
    #: @type: C{str}
    data = "important data"
    

    现在,当您生成文档时, data 将被描述为具有给定描述和类型的模块变量 str . 你可以省略 @type 线。

        3
  •  10
  •   Dan Lenski    16 年前

    正如codeape所解释的,不可能记录一般数据成员。

    然而,它 可以记录 property 数据成员:

    class Foo:
      def get_foo(self): ...
    
      def set_foo(self, val): ...
    
      def del_foo(self): ...
    
      foo = property(get_foo, set_foo, del_foo, '''Doc string here''')
    

    这将给 foo 显然是属性。