是否可以在Python中添加类型提示,并对类型的超类进行约束?例如,我想要一些看起来像这样的东西:
def foo(g: T(S)) -> T:
pass
这是一个接受g
类型参数T
的函数,而T
必须是类S
或S
本身的子类,函数的返回值是T
类型。
C#中的等效函数类似于
public static void foo<T>(T g) where T : S
{
}
我查看了PEP484,但似乎没有任何相关内容。
答案 0 :(得分:1)
每PEP484,您想要的语法似乎是:
from typing import TypeVar
T = TypeVar('T', bound=S)
def foo(g: T) -> T:
pass