使用 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))
我正在尝试在 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))