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

discord.py bot命令运行报错NameError: name 'arg' is not defined原因求解

错误原因分析

报错栈显示该错误触发在main.py第54行的全局模块执行阶段,而非你贴出的item命令函数内部:

File "main.py", line 54, in <module>
    number = itemapi.get_api(arg)
NameError: name 'arg' is not defined

arg是被@bot.command()装饰的item函数的局部入参,仅在函数被Discord事件触发、进入函数作用域后才会被赋值生效。你直接在全局作用域写了调用itemapi.get_api(arg)的代码,此时全局没有定义过arg变量,就会触发未定义报错。

修复方法
  • 直接删除全局作用域下的number = itemapi.get_api(arg)测试代码即可,item函数内部的调用逻辑没有问题,后续bot上线后收到用户指令时会自动传入参数,不会触发该报错
  • 如果你需要做本地功能测试,需要手动给参数赋值后再调用,示例如下:
# 本地测试示例
test_arg = "要查询的物品名"
test_number = itemapi.get_api(test_arg)
print(test_number)

额外注意:代码中用到的全局db变量、itemapi实例需要提前完成初始化,否则后续运行还会触发其他未定义报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:24:08