跨函数的类型推断/重用类型提示

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

我在外部库中有一个函数,该函数具有复杂的类型提示(“内部”)。在我的代码中,我有另一个函数(“外部”)调用此函数。该函数的参数之一将传递给提示函数。我想让 mypy 对参数进行类型检查。如何在不复制复杂类型提示的情况下实现这一目标?

一个最小的例子

def inner(x: int) -> None:
    ...

def outer(x, y: str) -> None:
    """function that needs a typehint for x"""
    inner(x)

# This should throw an error
outer(x="a", y="a")
python mypy python-typing
1个回答
0
投票

您可以使用

TypeAlias
将类型分配给变量,然后在两个函数中重用它:

from typing import TypeAlias

X: TypeAlias = int
def inner(x: X) -> None:
    ...

def outer(x: X, y: str) -> None:
    """function that needs a typehint for x"""
    inner(x)

# This should throw an error
outer(x="a", y="a")
© www.soinside.com 2019 - 2024. All rights reserved.