如何创建自引用的Python3枚举?
问题描述
我是否可以创建枚举类RockPaperScissors
使ROCK.value == "rock"
和ROCK.beats == SCISSORS
,其中ROCK
和SCISSORS
都是RockPaperScissors
中的常量?
解决方案
枚举成员是该类型的实例。这意味着 您只能使用常规属性:
from enum import Enum
class RockPaperScissors(Enum):
Rock = "rock"
Paper = "paper"
Scissors = "scissors"
@property
def beats(self):
lookup = {
RockPaperScissors.Rock: RockPaperScissors.Scissors,
RockPaperScissors.Scissors: RockPaperScissors.Paper,
RockPaperScissors.Paper: RockPaperScissors.Rock,
}
return lookup[self]
相关文章