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

如何在Python的Callable参数类型列表中使用自定义类

正确使用TypedDict作为Callable参数类型的方法

你的问题出在Callable泛型的参数格式错误:Callable的第一个类型参数必须是参数类型的元组/列表(哪怕只有一个参数),而不是直接传入单个类型。

正确代码示例

from typing import Any, Callable, TypedDict

class PassedData(TypedDict):
    node: str
    
class Action(TypedDict):
    # 用方括号包裹单个参数类型,形成参数列表的类型声明
    action: Callable[[PassedData], Any]
    data: Any

错误原因说明

  1. 最初的写法Callable[PassedData, Any]不符合Callable的泛型规范:Callable要求第一个参数是所有输入参数的类型组成的序列,单个参数也要用[[]]包裹。
  2. 用Type(PassedData)完全没必要,Type[PassedData]表示的是PassedData类本身的类型(比如用来接收类对象),而你需要的是PassedData的实例作为函数参数,直接用PassedData即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 20:25:29