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

Discord.py:使用斜杠命令为他人分配角色遇属性错误

问题解决:Discord Bot 分配角色报错 AttributeError

报错根源

你遇到的AttributeError: 'coroutine' object has no attribute 'add_roles',核心原因是guild.fetch_member()是异步方法,你没加await关键字调用,导致player存的是协程对象,不是实际的Discord用户(Member)实例,自然找不到add_roles方法。

修复代码

把获取用户的那一行加上await:

guild = bot.get_guild(int([你的服务器ID]))
# 关键:给fetch_member加上await
player = await guild.fetch_member(int(user_id))
if bumped:
    rank_one = discord.utils.get(guild.roles, name="Test Rank")
    await player.add_roles(rank_one)

额外注意事项

  • 确保你的Bot有管理角色的权限,且要分配的角色位置在Bot自身角色的下方(Discord规则:Bot不能给比自己角色等级高的用户分配角色)
  • 如果目标用户不在当前服务器,fetch_member会抛出NotFound错误,建议加异常处理避免崩溃:
try:
    player = await guild.fetch_member(int(user_id))
except discord.NotFound:
    print(f"用户 {user_id} 不在当前服务器")
    return

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:43:13