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

运行代码报错'NoneType' object has no attribute 'members' 问题求助

错误原因

  • 触发'NoneType' object has no attribute 'members'报错的核心原因是你代码中调用.members属性的guildsd变量为空值,说明你提前获取服务器对象的步骤就执行失败,没有拿到有效的Discord服务器实例。
  • 你提供的代码片段不完整,末尾的if 'test' in content:没有后续的分支逻辑和代码闭合,同时也会触发语法报错。

解决方法

  1. 先校验guildsd的获取逻辑,确保你传入了正确的整数类型服务器ID、bot已加入对应服务器,获取时先做非空判断再访问成员属性,参考逻辑如下:
# 替换为你自己的服务器ID,必须为整数格式,不要加引号
guildsd = bot.get_guild(1234567890)
if guildsd is None:
    await say("未找到对应服务器,请检查服务器ID是否正确、bot是否已加入该服务器")
    return
  1. 开启bot的成员读取权限:
    • 进入Discord开发者后台的对应bot管理页,开启Server Members Intent权限开关
    • 重新邀请bot进服务器时,勾选成员读取相关的授权项
  2. 调整你代码中的逻辑顺序:你当前把author == bot.user的判断放在了循环第一行,只要触发就直接返回,会导致循环完全无法执行后续逻辑,建议把这个判断移到循环外层,调整后的完整参考代码如下:
# 把bot自身判断移到最外层,避免提前终止逻辑
if author == bot.user:
    return
# 替换为你自己的服务器ID
guildsd = bot.get_guild(你的服务器ID)
if not guildsd:
    await say("服务器获取失败")
    return
for member in guildsd.members:
    if 'member' in content:
        await say(member)
    if 'test' in content:
        # 补全你自己的test分支逻辑
        pass
  1. 补全你代码中if 'test' in content:分支的后续逻辑,避免语法报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 03:45:03