【问题标题】:Class and member documentation for Python 3.4 enumerationsPython 3.4 枚举的类和成员文档
【发布时间】:2014-04-28 16:45:26
【问题描述】:

标准 Python 3.4 的枚举支持已通过 pypi 中的 enum34 包向后移植到 Python 3.x 和 2.x。

在 Python 2.7 中使用 enum34 包,我很失望地看到它在交互式 python 的 help() 函数中的行为:

例如:

colors.py:

from enum import Enum
class Colors(Enum):
    """Enumeration of the three base colors"""
    RED = 1
    GREEN = 2
    BLUE = 3

在python中:

>>> import colors
>>> help(colors)
Help on module colors:

NAME
    colors

FILE
    <mypath>/colors.py

CLASSES
    enum.Enum(__builtin__.object)
        Colors

    Colors = <enum 'Colors'>

它甚至没有列出类描述。 :-(

  1. 如何在 help() 或 pydoc 中显示类描述?

  2. 如何记录枚举成员,以便文档显示在 help() 或 pydoc 中?

安迪

【问题讨论】:

  • 您可以考虑将此作为错误或功能请求报告给enum34 维护者。
  • 看来pydoc.TextDoc().docclass() 无法处理这些枚举,因为它无法确定它们的某些属性是从哪里继承的(因此它依赖于默认描述)。不过,似乎在 3.4 中已修复。

标签: python enums


【解决方案1】:

很遗憾,help()(即pydoc)无法正确显示Enums 上的信息。我们必须在 3.4 及更高版本中进行一些修复以获得更好的结果。

您可以直接显示__doc__s,也可以制作自己的help() 包装器,首先检查对象是否为Enum,在这种情况下,您打印您想知道的位,否则(或另外)致电常规help

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多