在mypy中提取可调用的类型

问题描述 投票:0回答:1

假设我有这些功能:

def mogrify(a: int) -> bool:
    return bool(a)

def stream(b: int, f: Callable[[int], bool]) -> bool:
    return f(b)

我有一个规范回调,所以我想能够做到 像这样的东西:

MyCallback = reveal_type(mogrify)

def stream(b: int, f: MyCallback) -> bool:
    return f(b)

除了没有真正做我想做的事之外,

reveal_type
本身并不是一部分 PEP 484 所以我不能使用它。

python type-hinting mypy
1个回答
0
投票

reveal_type
是 MyPy 特定的调试类型构造,不是 PEP 484 的一部分。您应该定义一个可重用的类型别名。

from typing import Callable

# Define the type alias
MyCallback = Callable[[int], bool]

# Your function definitions
def stream(b: int, f: MyCallback) -> bool:
    return f(b)
© www.soinside.com 2019 - 2024. All rights reserved.