【问题标题】:UnboundLocalError: local variable 'member_id' referenced before assignment in discord.pyUnboundLocalError:在discord.py中赋值之前引用了局部变量'member_id'
【发布时间】:2020-12-30 14:09:30
【问题描述】:

我不明白我在这里做错了什么

@commands.command()
async def level(self, ctx, member: discord.Member = None):
    member = ctx.author if not member else member
    member_id = str(member_id)
    guild_id = str(ctx.guild.id)
    
    user = await self.bot.pg_con.fetch("SELECT * FROM users WHERE user_id = $1 AND guild_id = $2", member_id, guild_id)

它给了我这个错误

UboundLocalError: local variable 'member_id' referenced before assignment

【问题讨论】:

  • 发布您的完整代码或至少一个可以重现错误的代码。你的代码在哪里定义member_id
  • 在方法的第一行,您有member,在第二行,您在右侧使用了member_id。那是错误
  • 感谢@AjayA 是的,它现在可以工作了。我只是瞎了。

标签: python discord.py


【解决方案1】:

从您在此处发布的代码来看,您似乎正在尝试使用变量 member_id 而没有声明它。如果 member_id 不是全局变量,则必须先声明并赋值,然后才能使用或转换为字符串。一个例子是这样的:

@commands.command()
async def level(self, ctx, member: discord.Member = None):
    member = ctx.author if not member else member
    #Assuming member has the id
    member_id = member.id #declaring member_id here
    member_id = str(member_id)
    guild_id = str(ctx.guild.id)
    
    user = await self.bot.pg_con.fetch("SELECT * FROM users WHERE user_id = $1 AND guild_id = $2", member_id, guild_id)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 2012-11-14
    • 2013-11-29
    相关资源
    最近更新 更多