首页 > 解决方案 > 在 mypy 中使用函数签名作为可调用参数的类型

问题描述

如果我有这样的函数,那需要一个可调用的:

def some_func(my_func: Callable[[int, str], None], x: int, y: str) -> None:
    my_func(x, y)

而且我有我计划传入的可调用函数及其所有类型提示:

def the_function(x: int, y: str) -> None:
    # do something
    return None

两个函数中可调用的签名是相同的,这有点愚蠢。是否可以将它抽象成一个变量,所以你有类似的东西:

SigType = Callable[[int, str], None]

def some_func(my_func: SigType, x: int, y: str) -> None:
    pass

# I'm sure this won't work, but you know what I mean, I hope
def the_function(**SigType) -> None
    pass

即使是文档中的示例在打字方面也有这种奇怪的冗余,所以很好奇它是否被解决了。

标签: typingmypy

解决方案


推荐阅读