使用类型提示来确保两个函数参数的类型相同



假设我有一个函数,它从源中检索一个值,然后在返回之前将其映射到另一个类型。

示例函数声明可能如下所示:

def get_value(mapping_function: Callable[[str], any]) -> any:
# ...

函数将从某个源检索值,然后在返回结果之前根据mapping_function进行映射。

有什么方法可以指定返回的类型和lambda的结果是相同的类型吗?它可以是任何类型,但它将始终相同,类似于以下内容:

def get_value(mapping_function: Callable[[str], T]) -> T:
# ...

例如,在Java中,我可以做:

public static <T> T getValue(Function<String, T> mappingFunction) {
// ...
}

也许我用泛型类型或其他什么东西把它封装在类中?

应为:

from typing import TypeVar
T = TypeVar('T')
def get_value(mapping_function: Callable[[str], T]) -> T:
# ...

最新更新