【发布时间】:2018-10-23 08:54:16
【问题描述】:
我正在编写一个 ORM 包装器,它允许使用类型注释编写模型定义。我现在想添加泛型类型Unique[T]、Index[T] 和Primary[T] 来注释具有相应约束的类型。但是,对于 IDE 和其他静态类型检查器,我希望这些类型成为 T 的透明代理。所以,如果一个人有这样的类型:
something: Unique[str]
类型检查器和 IDE 会像上面所说的那样工作:
something: str
目前的实现是:
T = TypeVar('T')
class Unique(Generic[T]):
def __new__(cls, *args, **kwargs):
raise TypeError(f'cannot instantiate {cls}')
有没有办法让它变成某种代理类型?
【问题讨论】:
-
我喜欢一些允许通用代理的机制。不幸的是,建议的解决方案还不够。
标签: python-3.6 type-hinting typing