class EnumParamName:
    def __init__(self, namespace, name):
        self.namespace = namespace
        self.name = name

    def __setitem__(self, key, value):
        self.namespace.setdefault('_annotations', {})[key.name] = self.name
        self.namespace[self.name] = value

class EnumParamNamespace(dict):
    def __getitem__(self, name):
        if name in self:
            return super().__getitem__(name)
        return EnumParamName(self, name)

class EnumParamMeta(type):
    @classmethod
    def __prepare__(cls, name, bases):
        return EnumParamNamespace()

class SearchType(metaclass=EnumParamMeta):
    NAME = 'Name'
    USER_ID [DEFAULT] = 'User ID'

print(SearchType.NAME)
print(SearchType.USER_ID)
print(SearchType._annotations['DEFAULT'])