You need to enable JavaScript to run this app. 如何通过discord.py在新创建的分类中创建子频道并获取分类ID
优惠活动
大模型
产品
解决方案
定价
更多

如何通过discord.py在新创建的分类中创建子频道并获取分类ID

解决方案

你调用的await ctx.guild.create_category("bot commands")异步方法执行完成后,会直接返回刚创建完成的分类频道对象,你只需要用变量接住这个返回值,就能直接获取ID、或是直接用来关联新建的子频道,完全不需要额外通过分类名称检索ID。

示例代码

# 接收创建分类后返回的分类对象
new_category = await ctx.guild.create_category("bot commands")

# 如需获取分类ID,直接读取对象的id属性即可
category_id = new_category.id
# 可以把ID打印出来确认,或者用于其他业务逻辑
print(f"已创建分类,ID为:{category_id}")

# 创建子频道时直接把分类对象传给category参数,就能自动归入该分类下
# 创建文本子频道示例
await ctx.guild.create_text_channel("使用说明", category=new_category)
# 创建语音子频道示例
await ctx.guild.create_voice_channel("讨论频道", category=new_category)

注意事项

之前通过分类名称抓取ID容易报错的核心原因是:

  • 服务器内可能存在多个同名分类,检索时会命中错误的目标
  • 分类刚创建时缓存可能还未同步,通过名称检索会返回空值
  • 分类名称如果包含特殊字符、emoji,检索时匹配逻辑容易出问题
    直接拿创建方法返回的对象是最稳定、性能最好的实现方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 03:45:10