#python #discord.py
#python #discord.py
Вопрос:
Здравствуйте, я пытаюсь создать бот для роли реакции, но столкнулся с этой ошибкой. Он говорит, что моя переменная с именем USER_SETUP не используется, но это не так. Я пробовал большинство вещей, но, похоже, не могу понять это правильно. Вот мой код:
USER_DOING_SETUP = False
USER_SETUP = 0
@client.command(aliases=['rr', 'reactionroles'])
async def reactionrole(ctx, user, arg):
if arg == "setup":
if USER_DOING_SETUP == False:
userId = user.id
USER_SETUP = userId
USER_DOING_SETUP = True
await ctx.send(f"TEST REACTION ROLES TYPE {BOT_PREFIX}!rr cancel TO CANCEL")
else:
await ctx.send("Setup is used by another user")
elif arg == "cancel":
USER_DOING_SETUP = True
USER_SETUP = 0
await ctx.send("setup was cancled :)")
@client.event
async def on_message(message):
if message.author != client.user:
if USER_DOING_SETUP == False:
await message.channel.send("false")
elif USER_DOING_SETUP == True:
if USER_SETUP == message.author.id:
await message.channel.send("true")
else:
await message.channel.send("false")
Ошибка:
Unused variable 'USER_SETUP'
Комментарии:
1. Потому что это локальная переменная, которую вы устанавливаете и никогда не используете? Вы имели в виду иметь
global USER_SETUP
?2. У @ThierryLathuille все еще есть то же предупреждение о неиспользуемой переменной, а затем я также получаю сообщение об ошибке, если USER_SETUP == message.author.id : произнесение неопределенной переменной
3. Вы объявили его глобальным в нужном месте (= в начале функции)?
4. @ThierryLathuille спасибо
Ответ №1:
Вы должны объявить, что используете каждый глобальный параметр в начале каждой функции, в которой вы их используете (или, по крайней мере, перед чтением / назначением им):
USER_DOING_SETUP = False
USER_SETUP = 0
@client.command(aliases=['rr', 'reactionroles'])
async def reactionrole(ctx, user, arg):
global USER_DOING_SETUP
global USER_SETUP
if arg == "setup":
if USER_DOING_SETUP == False:
userId = user.id
USER_SETUP = userId
USER_DOING_SETUP = True
await ctx.send(f"TEST REACTION ROLES TYPE {BOT_PREFIX}!rr cancel TO CANCEL")
else:
await ctx.send("Setup is used by another user")
elif arg == "cancel":
USER_DOING_SETUP = True
USER_SETUP = 0
await ctx.send("setup was cancled :)")
@client.event
async def on_message(message):
global USER_DOING_SETUP
global USER_SETUP
if message.author != client.user:
if USER_DOING_SETUP == False:
await message.channel.send("false")
elif USER_DOING_SETUP == True:
if USER_SETUP == message.author.id:
await message.channel.send("true")
else:
await message.channel.send("false")