如何使枚举指向一个类

Got*_*ote 2 python enums class

假设我有这个枚举来存储所有不同的实体类型

class Entities(Enum):
    TREE = auto()
    ROCK = auto()
    FLOWER = auto()
Run Code Online (Sandbox Code Playgroud)

我想创建一个函数,它采用这些(TREE,ROCK...)枚举之一,并且知道枚举对应于我拥有的类。例如。:

def myFunc(EntityType):
    return type(EntityType)

print(myFunc(Entities.ROCK))
>>>ROCK (where ROCK is an instance of the ROCK class)
Run Code Online (Sandbox Code Playgroud)

如果有一种方法可以做到这一点,是否有一种方法可以初始化该类,例如:

def myFunc(EntityType):
    myObj = EntityType(pos=(0,0))
    return myObj
Run Code Online (Sandbox Code Playgroud)

Kyl*_*ons 5

如果您放弃auto并使用类本身作为 的值会怎么样Entities?假设TreeRock、 和Flower是您的类的名称:

class Entities(Enum):
    TREE = Tree
    ROCK = Rock
    FLOWER = Flower
Run Code Online (Sandbox Code Playgroud)

Entities.TREE.value是 的类构造函数Tree