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

Python高阶函数的Callable参数如何正确标注类型提示

问题原因分析
  • 你当前写的Callable[[], ]存在两个错误:
    • 第一对空方括号[]表示该函数不接收任何入参,但你的代码中会把int类型的列表元素el传给f,入参类型不匹配
    • 没有指定f的返回值类型,mypy会默认推断返回值为int,因此会报str和int相加的类型不兼容错误
正确标注写法

f的类型应该写为Callable[[int], str]:

  • 方括号内的int表示函数f接收1个int类型的入参
  • 后面的str表示函数f的返回值为字符串类型,符合你后续拼接字符串的逻辑
修正后完整代码
from typing import Callable

def g(L: list[int], f: Callable[[int], str]) -> str:
  result = ""
  for el in L:
    result += f(el)
  return result

内容的提问来源于stack exchange,提问作者Emilia Delizia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:36:10