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

Discord.py中提及成员时获取User ID的方法及报错解决

解决Discord.py中获取成员ID的AttributeError问题

报错原因是你未给member参数指定类型注解,Discord.py默认将其解析为字符串,而字符串没有id属性,因此触发AttributeError。另外你代码里的ctx.send缺少await关键字,这会导致消息无法正常发送。

修改方案如下:

  • 给member参数添加discord.Member类型注解,让Discord.py自动将输入转换为成员对象
  • 给ctx.send加上await关键字

修改后的完整Cogs结构代码:

import discord
from discord.ext import commands

class WarningCog(commands.Cog):
    def __init__(self, bot):
        self.bot = bot

    @commands.command()
    async def getID(self, ctx, member: discord.Member):
        await ctx.send(member.id)

如果已单独导入discord.Member,也可以简化注解:

from discord import Member

# ...

@commands.command()
async def getID(self, ctx, member: Member):
    await ctx.send(member.id)

这样用户输入成员提及、用户名或ID时,Discord.py都会自动匹配对应成员对象,你就能正常获取其id用于警告次数记录了。如果输入无法匹配到服务器内的成员,命令会自动返回错误提示。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:09:25