discord.py中调用get获取角色提示未定义错误该如何解决
问题原因及修复方案
核心错误根因
你代码中调用的get()是discord.utils子模块下的工具函数,你没有预先导入该函数,因此会抛出「get未定义」的报错。你之前尝试的discord.get、client.roles.get都不是正确的调用方式:discord根模块下没有直接提供get方法,client对象也不存在roles属性,角色列表属于当前触发命令的服务器对象ctx.guild。
两种可行的修复方式
- 方案1:导入get函数后继续使用原有逻辑
在代码头部的导入区域新增一行导入语句:
导入完成后原有from discord.utils import getrole = get(ctx.guild.roles, name = 'punishment')代码即可正常运行。 - 方案2:直接使用服务器角色列表自带的get方法,无需额外导入
直接调用ctx.guild.roles的内置get方法查询对应名称的角色:role = ctx.guild.roles.get(name="punishment")
额外注意
你当前代码中@client.command()装饰器及后续的函数定义缩进层级错误,需要和顶部的client变量定义保持同级缩进,否则会触发语法错误。
内容的提问来源于stack exchange,提问作者Daksh Kumar
相关产品推荐
相关产品推荐

