You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何为函数参数与返回值标注functiontype类型?

Python 函数类型标注的正确姿势

在Python里,要是你想给函数的参数、返回值标注函数类型,不用纠结怎么导入<class 'function'>,有两种常用的方法:

方法1:用typing.Callable(Python 3.5及以上可用)

Callable是专门用来标注可调用对象(包括函数)的类型提示工具,灵活性很强。如果不需要精确限定参数类型,就用Callable[..., 返回值类型]的写法:

from typing import Callable

def wrapper(func: Callable[..., int]) -> Callable[..., int]:
    return func

要是你想精确指定参数的类型,比如标注一个接受两个整数参数、返回整数的函数,就这么写:

from typing import Callable

def wrapper(func: Callable[[int, int], int]) -> Callable[[int, int], int]:
    return func

方法2:用types.FunctionType(直接对应函数类)

如果你确实要直接引用函数的类本身,可以从types模块导入FunctionType:

from types import FunctionType

def wrapper(func: FunctionType) -> FunctionType:
    return func

不过这种方法不太推荐用于类型提示,因为它只能识别标准的函数对象,像那些实现了__call__方法的类实例(也是可调用的)就覆盖不到,而Callable的适用范围要广得多。

额外说明

  • 直接写function肯定不行,因为它不是Python的内置类型名称,你用type()看到的<class 'function'>是函数对象的类型,但这个类没有直接暴露成全局变量,必须从types模块导入FunctionType才能引用。
  • 类型提示主要是为了让代码更易懂、方便静态检查,优先用typing.Callable才是更稳妥的选择。

内容的提问来源于stack exchange,提问作者Dimon Agon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 19:45:58