Создание счетного бота с перезаписью Discord.py - локальная переменная counter, на которую ссылаются до ошибки присваивания - PullRequest
0 голосов
/ 20 января 2019

Я пытаюсь создать счетчик в диссон-боте, который берет число у пользователя и добавляет его к текущему итогу.Однако я получаю либо ошибку «локальная переменная», на которую ссылается до присвоения », либо ошибку« счетчик имени не определен ».

Я пробовал 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 голосов
/ 20 января 2019

В варианте 2 вы должны определить счетчик:

counter = 0

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