@Flam3y

Как указать переменную вне Асинхронного кода в этот самый код?

День добрый, пишу бота для дискорд. Мне нужно, чтобы переменная "Matrix" могла быть использована в функции, а затем изменённая "Matrix" могла быть использована в другой функции.
Сейчас мой код выглядит так:
import discord
client = discord.Client()

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))
    Matrix = "▢"
@client.event
async def on_message(message):
	if message.content.startswith("#on"):
		Matrixsend = Matrix.replace(Matrix[0], "▣")
		Matrix = Matrixsend
		await message.channel.send(''+str(Matrix))
@client.event
async def on_message(message):
	if message.content.startswith("#off"):
		Matrixsend = Matrix.replace(Matrix[0], "▢")
		Matrix = Matrixsend
		await message.channel.send(''+str(Matrix))
client.run("Тут могла быть ваша реклама")

Как это можно реализовать на питоне 3.7?
  • Вопрос задан
  • 41 просмотр
Пригласить эксперта
Ответы на вопрос 1
Allan-BlackWell
@Allan-BlackWell
Ничтожество :D
1. Необязательно использовать on_message 2 раза, вам только выдаст ошибку.
2. Можно использовать переменную global для полного доступа к переменной из кода

import discord

client = discord.Client()
Matrix = "▢"

@client.event
async def on_ready():
    print('We have logged in as {0.user}'.format(client))

@client.event
async def on_message(message):
    global Matrix

    if message.content.startswith("#on"):
        Matrixsend = Matrix.replace(Matrix[0], "▣")
        Matrix     = Matrixsend
    
        await message.channel.send(''+str(Matrix))
  
    if message.content.startswith("#off"):
        Matrixsend = Matrix.replace(Matrix[0], "▢")
        Matrix     = Matrixsend
    
        await message.channel.send(''+str(Matrix))

client.run("Тут могла быть ваша реклама")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы