如何从 python 2.7 中的枚举导入 auto?

Ziu*_*lpa 1 python compatibility enums python-2.7

我正在使用基于 python 2.7 的旧代码(不幸的是,无法更改它)。我必须从一段基于 python 3.6 的代码中引入一个新功能。这段代码可以工作,除非它使用了包枚举,据我所知,该枚举不再维护。所以:

from enum import Enum, auto (不适用于Python 2.7)

因为我认为 python 2.7 中没有定义“auto”。是否有可能使该线路正常工作?或者至少安装/导入“enum.auto”或具有相同功能的东西?

Eth*_*man 5

你有几个选择:

  • 使用aenum1代替
  • 复制/创建你自己的auto()并将其填充到enum

使用aenum过程分为两步

  • pip install aenum
  • 改成from enumfrom aenum

创建/复制auto并将其填充到enum

import enum
from itertools import count

def auto(it=count()):
  return next(it)

enum.auto = auto
Run Code Online (Sandbox Code Playgroud)

1声明:我是Python stdlibEnumenum34backportAdvanced Enumeration ( aenum)库的作者 。