Python中能否直接引用函数返回类型用于类型注解?
Python中引用函数返回类型的方法
当然有!Python 3.10及以上版本提供了typing.ReturnType,可以直接获取函数的返回类型,完全替代你现在用类型别名的方式,实现你想要的“直接引用”效果。
3.10+版本实现代码
from typing import Tuple, ReturnType def func() -> Tuple[int, int]: return 1, 1 def call_back(arg: ReturnType[func]) -> int: a, b = arg return a + b
旧版本兼容方案(3.9及以下)
如果你的Python版本低于3.10,可以安装官方维护的typing_extensions包,然后使用其中的ReturnType:
pip install typing_extensions
对应代码示例:
from typing import Tuple from typing_extensions import ReturnType def func() -> Tuple[int, int]: return 1, 1 def call_back(arg: ReturnType[func]) -> int: a, b = arg return a + b
扩展说明
ReturnType不仅支持无参函数,带参数的函数同样适用,它会直接读取函数定义时的返回类型注解:
def multiply(x: float, y: float) -> float: return x * y def format_result(val: ReturnType[multiply]) -> str: return f"计算结果:{val:.2f}"
内容的提问来源于stack exchange,提问作者Philip Nelson
相关产品推荐
相关产品推荐

