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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)