使用 Discord.py rewrite- 本地变量 'counter' 在赋值错误之前引用的计数器机器人

Making a counter bot with Discord.py rewrite- local variable 'counter' referenced before assignment error

我正在尝试在 discord 机器人中创建一个计数器,它从用户那里获取一个数字并将其添加到当前总数中。但是我得到一个“局部变量 'counter' 在赋值前被引用”错误或 "name counter is not defined" 错误。

我在尝试解决我的问题时尝试了 2 种变体。

变体 1:

global counter
@bot.command()
async def bid(ctx,number):
    counter += number
    print(str(counter))

变体 2:

@bot.command()
async def bid(ctx,number):
    global counter
    counter += 1
    print(str(counter))  

变体 1 取自 Whosebug 上的一个类似问题 post。这是returns“赋值前引用的局部变量'counter'”错误

的代码

变体2也摘自类似的问题(同样的问题实际上只是不同的回答)。这是 returns "name counter is not defined" 错误的代码。

预期结果:

我想创建一个让用户增加计数的命令。所以假设计数当前为 0。我希望能够说 !bid 40 并让计数达到 40。如果另一个用户说 !bid 20 我希望计数达到 60。

提供的代码到底有什么问题?为什么会这样?

在变体 2 中,您必须定义计数器:

counter = 0

@bot.command()
async def bid(ctx,number):
    global counter
    counter += 1
    print(str(counter))