Python类型提示,类型超类的约束

时间:2016-03-27 02:09:06

标签: python

是否可以在Python中添加类型提示,并对类型的超类进行约束?例如,我想要一些看起来像这样的东西:

def foo(g: T(S)) -> T:
    pass

这是一个接受g类型参数T的函数,而T必须是类SS本身的子类,函数的返回值是T类型。

C#中的等效函数类似于

public static void foo<T>(T g) where T : S
{
}

我查看了PEP484,但似乎没有任何相关内容。

1 个答案:

答案 0 :(得分:1)

PEP484,您想要的语法似乎是:

from typing import TypeVar

T = TypeVar('T', bound=S)

def foo(g: T) -> T:
    pass