Python 将所选频道保留在discord.py循环之外

Python 将所选频道保留在discord.py循环之外,python,discord,discord.py,Python,Discord,Discord.py,我已经创建了一个机器人,当我键入命令时,它将锁定每个频道,但是,我不希望它锁定员工频道和公告频道。 以下是我目前的代码: @bot.command(别名=['r']) @commands.has_权限(manage_channels=True) 异步def锁定(ctx): 对于bot.guilds中的帮会: 对于guild.text_频道中的频道: 频道 覆盖=频道。覆盖(ctx.guild.default\u角色) overwrite.send_messages=False 等待频道。设置权限

我已经创建了一个机器人,当我键入命令时,它将锁定每个频道,但是,我不希望它锁定员工频道和公告频道。 以下是我目前的代码:

@bot.command(别名=['r'])
@commands.has_权限(manage_channels=True)
异步def锁定(ctx):
对于bot.guilds中的帮会:
对于guild.text_频道中的频道:
频道
覆盖=频道。覆盖(ctx.guild.default\u角色)
overwrite.send_messages=False
等待频道。设置权限(ctx.guild.default\u角色,覆盖=覆盖)
等待通道发送('锁定已开始')

如何执行此操作?

您可以使用阻塞语句排除不想按名称锁定的频道。像这样:

@bot.command(aliases=['r'])
@commands.has_permissions(manage_channels=True)
async def lockdown(ctx):
    for guild in bot.guilds:
        for channel in guild.text_channels:
            if channel.name in ['dont_lock_ch_name_1', 'dont_lock_ch_name_2']:
                continue
            overwrite = channel.overwrites_for(ctx.guild.default_role)
            overwrite.send_messages = False
            await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite)
            await channel.send('Lockdown has started')

您可以使用阻塞语句排除不想按名称锁定的通道。像这样:

@bot.command(aliases=['r'])
@commands.has_permissions(manage_channels=True)
async def lockdown(ctx):
    for guild in bot.guilds:
        for channel in guild.text_channels:
            if channel.name in ['dont_lock_ch_name_1', 'dont_lock_ch_name_2']:
                continue
            overwrite = channel.overwrites_for(ctx.guild.default_role)
            overwrite.send_messages = False
            await channel.set_permissions(ctx.guild.default_role, overwrite=overwrite)
            await channel.send('Lockdown has started')