如何定义可订阅的 NewType,例如 List[int]

How do I define a `NewType` that's subscriptable, like `List[int]`

我试过 NewType['SomeType', (SomeClass, typing.Container)] 之类的方法,但没有用。

假设我有一个class很简单,如下

class A:
    def __init__(self, a):
        self.a = a

现在我想把一个returns这个类型的函数注释为NewA[int],即使用__getitem__,我显然没有在上面的A中定义,但它增加了一个额外的描述层。这可能吗?如果不是,我有什么理由不应该尝试做这样的事情吗?

答案是使用 Generic,如标准库的 typing 文档中所定义。