【发布时间】:2021-09-28 20:19:02
【问题描述】:
我的 IDE 自动完成目前存在一些问题,因为它无法判断返回类型是什么等。
我有一个单例元类,覆盖类似于此的 __call__ 方法:
SingletonTypes = typing.TypeVar("SingletonTypes")
class Singleton(ABCMeta):
def __call__(cls: SingletonTypes, environment: str = None, *args, **kwargs) -> SingletonTypes:
/* code here, will return an instanciated copy of cls */
return super(Singleton, cls).__call__()
我的问题是如果我有通用类型提示,显然 cls 是一种类型,它会返回对象。我不确定如何指定 typehints 来表明这一点,而没有 python 会感到困惑。
如果我尝试将type(SingletonTypes) 添加到 cls 类型提示中,那么它不会提出任何建议,因为 SingletonType 之间没有一致性。不太确定如何进行,如果能正常使用自动完成功能会很好。
【问题讨论】:
标签: python type-hinting metaclass