discord.py开发Discord机器人提及角色触发TypeError: unhashable type: 'set'报错如何解决
错误原因
你触发的TypeError: unhashable type: 'set'报错是因为参数类型写错:
channel = client.get_channel({849549009038344262})
你用大括号{}把频道ID包了起来,Python里单独用大括号包裹的非键值对元素会被识别为**集合(set)**类型,而client.get_channel()方法要求传入整数类型的频道ID,集合属于不可哈希类型,不符合方法参数要求,因此触发报错。
修复方案
把包裹频道ID的大括号删除,直接传入整数ID即可:
# 修复后的代码 channel = client.get_channel(849549009038344262)
额外检查项
- 确保你的机器人有权限访问ID为
849549009038344262的频道,且持有发送消息的权限 - 如果你使用discord.py v2.0及以上版本,需要提前在Discord开发者后台开启对应机器人的消息内容特权网关意图(Message Content Intent),否则
msg.role_mentions无法正常识别@的角色
内容的提问来源于stack exchange,提问作者user16114868
相关产品推荐
相关产品推荐

