AttributeError: 'NoneType' object has no attribute 'id'_

AttributeError: 'NoneType' object has no attribute 'id'_

这是我在机器人中的代码

@Bot.event
async def on_voice_state_update(member,before,after): #Создвние войс комнат
    if after.channel.id == &&&&&&&&&&&&&&&&&&:
        print(f'{member} зашёл в канал')
        for guild in Bot.guilds:
            maincategory = discord.utils.get(guild.categories, id=$$$$$$$$$$$$$$$$$$)
            channel2 = await guild.create_voice_channel(name=f'{member.display_name}`s Channel',category = maincategory)
            await channel2.set_permissions(member,connect=True,mute_members=True,move_members=True,manage_channels=True)
            await member.move_to(channel2)
            def check(x,y,z):
                return len(channel2.members) == 0
            await Bot.wait_for('voice_state_update',check=check)
            await channel2.delete()

这是我在终端中的错误

Traceback (most recent call last):
  File "C:\Users\Макс\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\discord\client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\Макс\DRACULA-rms\bot.py", line 108, in on_voice_state_update
    if after.channel.id == &&&&&&&&&&&&&&&&&&&&:
AttributeError: 'NoneType' object has no attribute 'id'

请帮帮我,我自己无法解决这个错误,我使用 Python 39

如果成员在此更新后(不再)在语音频道中,则 after.channel 值为 None,如记录 here

您将不得不以某种方式处理这种情况,也许什么都不做:

if after.channel and after.channel.id == &&&&&&&&&&&&&&&&&&:
    print(f'{member} зашёл в канал')

不是最佳方式,但我想你可以使用这个:

if after:
    if after.channel:
             if after.channel.id == &&&&&&&&&&&&&&&&&&:
             //Your code here

它基本上首先检查 after 是否是 none,如果不是,那么如果 after,channel 是 none?如果不是,那么它将引用它的 id