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

Discord.py Cog中ctx.guild.id无法使用,如何修复该错误?

Discord.py Cogs 命令访问ctx.guild.id报错修复方案

问题根源

你的代码存在几处语法与逻辑错误,导致程序误把Cog实例当成了ctx对象,才会触发“cog类没有guild属性”的报错:

  • 类定义拼写错误:Class需改为小写class,commands.cog要大写为commands.Cog
  • 类方法缺少self参数:命令方法是Cog类的成员方法,第一个参数必须是self,你遗漏后,ctx被错误绑定到了Cog实例本身
  • 异步方法未加await:ctx.send()是异步操作,必须用await调用
  • 使用了中文引号:代码里的“testcommand”要替换为英文双引号""

修正后的代码

class cogname(commands.Cog):
    @commands.hybrid_command(name="testcommand")
    async def testcommand(self, ctx):
        await ctx.send(data[ctx.guild.id])

额外注意事项

  • 确保data变量在Cog类的作用域内可访问,如果data是全局变量或来自其他模块,要保证正确导入或引用
  • 对于hybrid命令,记得在机器人启动时同步命令树(比如执行await bot.tree.sync()),否则服务器内可能无法看到该命令

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 22:24:49