使用Discord.py rewrite-分配错误之前引用的本地变量“ counter”制作计数器机器人

时间:2019-01-19 22:29:05

标签: python python-3.6 discord.py-rewrite

我正在尝试在一个不和谐的机器人中创建一个计数器,该机器人从用户那里获取一个数字并将其添加到当前总数中。但是,我收到“分配前已引用本地变量'counter'”错误或“未定义名称计数器”错误。

在尝试解决我的问题时,我尝试了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来自StackOverflow上的类似问题帖子。这是返回“赋值前引用的局部变量'counter'”错误的代码

变化2也来自类似的问题(同一问题实际上只是不同的回答)。这是返回“未定义名称计数器”错误的代码。

预期结果:

我希望创建一个允许用户增加计数的命令。因此,可以说当前计数为0。我希望能够说出!bid 40并将其计数提高到40。如果另一个用户说出!bid 20,我希望计数值达到60。

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

1 个答案:

答案 0 :(得分:1)

在版本2中,您必须定义计数器:

counter = 0

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