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

如何通过变量传递方法名与参数调用sf对象的方法?

解决方案

要实现动态调用sf对象的指定方法并传递关键字参数,你可以用Python内置的getattr()函数来动态获取方法,再通过字典解包传递参数,具体步骤如下:

  1. 定义参数变量

    action_cmd = "list_state_machines"  # 存储方法名的字符串
    payload = {"maxResults": 2}         # 关键字参数组成的字典
    
  2. 动态获取目标方法
    用getattr()从sf对象中取出与action_cmd值匹配的方法:

    target_method = getattr(sf, action_cmd)
    
  3. 调用方法并传递参数
    因为payload是关键字参数的字典,调用时用**操作符把字典解包成方法需要的关键字参数:

    response = target_method(**payload)
    

原写法失效的原因

sf.action_cmd是直接访问sf对象中名为action_cmd的属性,而非把变量action_cmd存储的字符串作为方法名去查找,自然会找不到对应方法导致报错。getattr()正好解决了“根据字符串动态获取对象方法/属性”的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:52:05