如何定义可订阅的 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
文档中所定义。
我试过 NewType['SomeType', (SomeClass, typing.Container)]
之类的方法,但没有用。
假设我有一个class很简单,如下
class A:
def __init__(self, a):
self.a = a
现在我想把一个returns这个类型的函数注释为NewA[int]
,即使用__getitem__
,我显然没有在上面的A
中定义,但它增加了一个额外的描述层。这可能吗?如果不是,我有什么理由不应该尝试做这样的事情吗?
答案是使用 Generic
,如标准库的 typing
文档中所定义。