为了账号安全,请及时绑定邮箱和手机立即绑定

AttributeError: 'NoneType' 对象没有属性 'channels'

AttributeError: 'NoneType' 对象没有属性 'channels'

慕后森 2021-07-09 14:07:17
我的 Discord 机器人模块有问题。我得到AttributeError: 'NoneType' object has no attribute 'channels'我不确定它抛出这个错误的方式:这是我正在使用的内容:from discord.ext import commandsfrom discord.utils import getimport logging as logfrom datetime import datetime,timedeltaimport discordimport osfrom .utils import checksfrom run import UKGBotimport asyncioclass Pinner():    """Pins messages to a specific channel."""    def __init__(self, bot: UKGBot):        self.bot = bot    async def on_message(self, message):        """Listen for message then pin it"""        try:            guild = message.guild            channel = get(message.guild.channels, name="gtky")            pins = await message.channel.pins()            if message.channel == channel and message.type != discord.MessageType.pins_add:                if len(pins) == 20:                    await message.unpin(pins[-1])                await asyncio.sleep(3)                 await message.pin()        except discord.Forbidden:            print("No permissions to do that!")    def setup(bot):        """Setup function"""        to_add = Pinner(bot)        bot.add_listener(to_add.on_message, 'on_message')        bot.add_cog(to_add)
查看完整描述

2 回答

?
浮云间

TA贡献1829条经验 获得超4个赞

您正在尝试访问channels某个对象的属性,但该对象None在其他语言中是== Null。

从您的代码中,您引用通道的唯一位置是message.guild.channels,channel = get(message.guild.channels, name="gtky")在行中,因此guild消息对象的属性是None


查看完整回答
反对 回复 2021-07-13
?
慕标琳琳

TA贡献1830条经验 获得超9个赞

发生这种情况是因为message.guildNone。 guildNone因为私人消息,两个用户之间的直接消息,不经过公会。

如果您的机器人发送或接收任何私人消息,这些消息将None作为其message.guild属性。


查看完整回答
反对 回复 2021-07-13
  • 2 回答
  • 0 关注
  • 570 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信