如何正确记录python枚举元素?

thr*_*rau 5 python documentation enums python-3.x

我知道我可以像其他任何类一样将Python文档字符串添加到枚举类型。但是,如何向该类型的元素添加文档?

据我所知,存在三种可能性:

class MyEnum(Enum):
    """
    This is my enum type.
    """

    """
    Variant 1
    """
    a = 0,  
    b = 1, # variant 2
    c = 2, """ variant 3 """
Run Code Online (Sandbox Code Playgroud)

但是它们中的任何一个都不能真正持续地工作。如果我调用print(inspect.getdoc(MyEnum.a))任何变体,MyEnum则返回该类型的文档字符串(“这是我的枚举类型”)。Pycharm可以在其快速文档预览中显示变体3,但包含引号和超出列换行符的较长注释将无法正确显示。

是否有关于如何记录Python枚举元素的首选方法或约定?

Eth*_*man 7

如果值本身并不重要,请参阅如何在Enums上放置文档字符串?。如果值很重要,则可以自定义该答案或使用aenum1库:

from aenum import Enum

class MyEnum(Enum):
    _init_ = 'value __doc__'
    a = 0, 'docstring for a'
    b = 1, 'another for b'
    c = 2, 'and one for c as well'
Run Code Online (Sandbox Code Playgroud)

结果是:

>>> MyEnum.b.value
1
>>> MyEnum.b.__doc__
'another for b'
Run Code Online (Sandbox Code Playgroud)

但是,我不知道哪个IDE支持使用Enum成员文档字符串。


1披露:我是Python stdlibEnumenum34backportAdvanced Enumeration(aenum 库的作者。