假设我有一个函数,它从源中检索一个值,然后在返回之前将其映射到另一个类型。
示例函数声明可能如下所示:
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:
# ...