Java和其他语言中enum的一个优点是,我不必关心特定的值(与常量/静态final成员相比)。例如,在Java中,我可以执行以下操作:
public enum Color {
RED, BLUE;
}
据我所知,在python中,我必须执行以下操作:
class Color(Enum) {
RED = "red" # or e.g 1
BLUE = "blue" # or e.g. 2
}
如果我有一个包含数百个名称的枚举,那么这可能会变得相当麻烦,因为我必须始终跟踪是否已经为名称分配了值。有没有可能在不使用生成器之类的工具的情况下实现与Java相同的结果?你知道吗
一种方法是将枚举基类用作callable:
如果您使用的是Python3.6或更高版本,那么可以使用
enum.auto()
:^{} 库的文档描述了这个特性和其他有用的特性,如
@unique
装饰器。你知道吗相关问题 更多 >
编程相关推荐