discord.py 语法错误:“等待”函数外部

问题描述 投票:0回答:2

当我尝试运行命令时,我总是收到此错误消息:SyntaxError: 'await' external function 可能是非常简单的错误,但我真的没有看到其中的错误。有人可以帮忙吗?

import discord
from discord.ext import commands

class unban(commands.Cog):

    def __init__(self, client):
        self.client = client

# Commandok

@commands.command()
async def unban(ctx, *, member): # unindent
    banned_users = await ctx.guild.bans() # unindent
    member_name, member_discriminator = member.split('#') # unindent

    for ban_entry in banned_users:
        user = ban_entry.user

    if (user.name, user.discriminator) == (member_name, member_discriminator):
        await ctx.guild.unban(user)
        await ctx.send(f'Unbanned {user.mention}')
    return

def setup(client):
    client.add_cog(unban(client))

discord.ext.commands.errors.ExtensionFailed:扩展“cogs.unban”引发错误:SyntaxError:“await”外部函数(unban.py,第 20 行)

python if-statement discord discord.py
2个回答
0
投票

我认为你的函数定义行可能缩进太多了。

@commands.command()
async def unban(ctx, *, member): # unindent
    banned_users = await ctx.guild.bans() # unindent
    member_name, member_discriminator = member.split('#') # unindent

    for ban_entry in banned_users:
        user = ban_entry.user

    if (user.name, user.discriminator) == (member_name, member_discriminator):
        await ctx.guild.unban(user)
        await ctx.send(f'Unbanned {user.mention}')
    return

0
投票

您的

if
语句不在您的
for
循环中。这应该有效:

@commands.command()
async def unban(ctx, *, member):
    banned_users = await ctx.guild.bans()
    member_name, member_discrinimator = member.split('#')

    for ban_entry in banned_users:
        user = ban_entry.user

        if (user.name, user.discriminator) == (member_name, member_discrinimator):
            await ctx.guild.unban(user)
© www.soinside.com 2019 - 2024. All rights reserved.