在 JavaScript 中我们可以这样做:
var Color = {
YELLOW: { value: 1, displayString: "Yellow" },
GREEN: { value: 2, displayString: "Green" },
}
所以我可以打电话:
Color.YELLOW.displayString
在 Java 中我们可以这样做:
public enum Color {
YELLOW (1, "Yellow"),
GREEN (2, "Green"),
private Color(String value, int displayString){
this.value = value;
this.displayString = displayString;
}
private final int value;
private final String displayString;
public String getValue() {return value;}
public String getDisplayString() {return displayString;}
}
所以我可以打电话:
Color.YELLOW.getDisplayString()
经过大量研究,我还没有找到使用内置 Enum 模块在 Python 中执行此操作的干净方法。我怎样才能做到这一点?
谢谢
原文由 olivierr91 发布,翻译遵循 CC BY-SA 4.0 许可协议
这里涉及到两个概念:枚举和对可以内联初始化的对象成员的属性式访问。对于后者,您需要某种自定义类,但由于您想要的东西非常简单,所以
namedtuple
就足够了。因此,结合namedtuple
和enum
,这可能是一个解决方案: