# for quick test you can just copy/paste it here https://www.programiz.com/python-programming/online-compiler/
from enum import Enum, auto
class MyClass:
def __init__(self, slot: str):
self.slot = slot
class MyObjEnum(MyClass, Enum):
def _generate_next_value_(slot: str, *args) -> MyClass:
return MyClass(slot)
class MyEnum(MyObjEnum):
foo = auto()
bar = auto()
assert isinstance(MyEnum.foo, MyClass) # OK
print(type(MyEnum.foo.slot))
# prints <class '__main__.MyClass'>, but it must be <class 'str'>!
print(type(MyEnum.foo.value.slot))
# <class 'str'> in py39 - OK, but it is <class '__main__.MyClass'> in py3.11 !!!