如何更改python枚举中auto的基值?

2024-04-26 02:17:41 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下代码,如何更改auto的基值,以便动物.蚂蚁是任意值,例如10,而不是1?在

from enum import Enum, auto

class Animal(Enum):
    ant = auto()
    bee = auto()
    cat = auto()
    dog = auto()

Tags: 代码fromimportautoenumclasscatbee
2条回答

您可以使用_generate_next_value_更改auto()选择值的方式。例如:

from enum import Enum, auto

class Auto_10(Enum):
    def _generate_next_value_(name, start, count, last_values):
        if name == "ant":
            return 10
        else:
           return last_values[-1] + 1

class Animal(Auto_10):
    ant = auto()
    bee = auto()
    cat = auto()
    dog = auto()

如果希望某些成员具有特定的值,只需指定它们:

class Animal(Enum):
    ant = 10
    bee = auto()
    cat = auto()
    dog = auto()

这将自动调整后续成员的值:

^{pr2}$

相关问题 更多 >