LINUX.ORG.RU

Заннотировать метакласс

 ,


0

1

Привет, лор!

Помогите зааннотировать метакласс, реализующий синглтон.

T = TypeVar("T", bound=type)


class Singleton(type):
    instances: ClassVar[Dict[Type[T], T]] = {}

    def __call__(cls: Type[T], *args, **kwargs) -> T:
        if cls not in cls.instances:
            cls.instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
        return cls.instances[cls]


Но это не работает. Не могу раздуплить, как правильно вывести типы тут?



Последнее исправление: djnoob (всего исправлений: 2)

Что не работает? Ошибки какие?

T = TypeVar(«T», bound=type)

T должен быть наследником type?

amm ★★
()

instances: ClassVar[Dict[Type[T], T]] = {}

Возьми что ль IDE какую, они подобное умеют выводить

Crocodoom ★★★★★
()

Ты даже безотносительно типов какую-то ахинею вытворяешь. Помочь себе сможешь только ты сам, когда начнёшь понимать, что и зачем делаешь.

WitcherGeralt ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.