Disnake获取消息作者名称时触发AttributeError错误求助
问题分析与解决
错误原因
你错误地直接访问了disnake.Message类的author属性——这是类的描述符而非具体的用户实例,因此无法获取name属性。
修正后的代码
import disnake from disnake.ext import commands intents = disnake.Intents.all() bot = commands.Bot(command_prefix="t!", intents=intents, activity=disnake.Game(name="testing, testing...")) @bot.event async def on_ready(): print("bot started") @bot.command(name="user") async def _user(ctx): # 使用ctx.author获取调用命令的用户对象 await ctx.send(f"你的用户名:{ctx.author.name},判别器:{ctx.author.discriminator}") bot.run("your token here")
关键说明
ctx.author是当前调用命令的用户(disnake.User或disnake.Member实例),可直接访问name、discriminator、id等属性。- 若要获取触发命令的那条消息的作者,也可以用
ctx.message.author,效果和ctx.author一致。
内容的提问来源于stack exchange,提问作者TheVorkMan
相关产品推荐
相关产品推荐

