我看到了页面:
我熟悉这个在 Python 中创建枚举的 SO question。但是,我在任何地方都找不到具有函数的枚举示例。
我主要是一名Java程序员。我用Java写了这段代码:
public enum Role {
SOLDIER(4),
DEMOMAN(2),
SCOUT(4),
MEDIC(2);
private final int maxPlayers;
private Role(int maxPlayers) {
this.maxPlayers = maxPlayers;
}
public int getMaxPlayers() { return maxPlayers; }
}
我尝试在 Python 中做同样的事情:
class Klass:
SCOUT = 1
SOLDIER = 2
DEMOMAN = 3
MEDIC = 4
@staticmethod
def maxPlayers(klass):
return {
Klass.SCOUT : 4,
Klass.SOLDIER : 4,
Klass.DEMOMAN : 2,
Klass.MEDIC : 2,
}[klass]
由于某些原因。我觉得我做错了。在 Python 中将函数与枚举关联的最佳实践是什么?
我实际上并不关心建议的答案是否不使用枚举;我只是想了解在 Python 中实现上述 Java 代码的最佳实践。
我愿意在以下情况下使用此枚举:
class Players(dict):
def countKlass(self, klass):
count = len(filter(lambda x: x == klass, self.values()))
return count