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

开发仿钢铁侠Jarvis遇TypeError:function类型对象不可迭代求助

问题原因

错误提示TypeError: argument of type 'function' is not iterable,说明你在第35行执行if "play" in command:时,command变量存储的是函数对象,而非函数执行后返回的字符串结果。从输出里的<function take_command at 0x000001C3A659C7C0>也能确认这一点——这是函数对象的打印结果,说明你没有正确调用take_command函数。

解决步骤
  1. 定位run_jarvis函数中赋值command的代码行(对应你提到的32-39行范围),检查是否写成了:
    command = take_command  # 错误:仅引用函数,未触发执行
    
  2. 修改为调用函数的形式,添加括号让函数执行并返回结果:
    command = take_command()  # 正确:调用函数并接收返回的字符串命令
    
  3. 确认take_command函数本身能返回字符串类型的结果(比如语音识别后的文本内容),确保后续的字符串包含判断逻辑可以正常运行。
验证修改

修改后重新运行程序,输出中不会再出现<function take_command at ...>的内容,而是take_command函数返回的实际命令文本,此时if "play" in command就能正常判断字符串是否包含指定内容,不会再触发TypeError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:31:21