fork download
  1. from enum import EnumMeta, IntEnum
  2.  
  3.  
  4. class DefaultEnumMeta(EnumMeta):
  5. def __call__(cls, value=None, *args, **kwargs):
  6. if value is None:
  7. # Assume the first enum member is default
  8. return next(iter(cls))
  9. return super().__call__(value, *args, **kwargs)
  10.  
  11.  
  12. class MyEnum(IntEnum, metaclass=DefaultEnumMeta):
  13. A = 0
  14. B = 1
  15. C = 2
  16.  
  17.  
  18. assert MyEnum() is MyEnum.A
  19. assert MyEnum(0) is MyEnum.A
  20. assert MyEnum(1) is not MyEnum.A
Success #stdin #stdout 0.02s 28384KB
stdin
Standard input is empty
stdout
Standard output is empty