有没有办法为python枚举指定默认值?

有没有办法为python枚举指定默认值?,第1张

有没有办法为python枚举指定默认值?

MyEnum(..)
由处理
Enummeta.__call__
。您需要重写该方法:

from enum import Enummeta, IntEnumclass DefaultEnummeta(Enummeta):    default = object()    def __call__(cls, value=default, *args, **kwargs):        if value is DefaultEnummeta.default: # Assume the first enum is default return next(iter(cls))        return super().__call__(value, *args, **kwargs)        # return super(DefaultEnummeta, cls).__call__(value, *args, **kwargs) # PY2class MyEnum(IntEnum, metaclass=DefaultEnummeta):    # __metaclass__ = DefaultEnummeta  # PY2 with enum34    A = 0    B = 1    C = 2assert MyEnum() is MyEnum.Aassert MyEnum(0) is MyEnum.Aassert MyEnum(1) is not MyEnum.A


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5630891.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存