AttributeError: 'NoneType' 对象没有属性 'id'_

时间:2021-04-28 10:39:37

标签: python python-3.9

这是我在机器人中的代码

@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

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

如果成员在此更新后(不再)处于语音频道中,则 after.channel 值为 None,如文档 here 所述。

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

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