Задать вопрос
@weRifiCatoR
Начинающий программист

Discord.py Как вывести переменную в одной команде с другой?

У меня есть переменная в одной команде и мне надо вывести её с другой, я пробовал использовать global, но ничего не поменялось, выходит ошибка что отсутствует переменная moder.
@client.command()
async def _init_( ctx ):
	global moder
	embed = discord.Embed(
		title = 'Это мой заголовок',
		description = 'Это мой основной текст',
		color = 0x83c837
	)
	moder = await ctx.send(
		embed = embed
	)


@client.command()
async def test( ctx ):
	global moder
	await ctx.send(
		moder
	)
  • Вопрос задан
  • 1092 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Если хотите глобалы использовать - переменную изначально надо объявить вне всяких функций
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@mrxor
Simple is better than complex
Сделайте moder глобальной переменной
moder = None

@client.command()
async def _init_( ctx ):
  global moder
  embed = discord.Embed(
    title = 'Это мой заголовок',
    description = 'Это мой основной текст',
    color = 0x83c837
  )
  moder = await ctx.send(
    embed = embed
  )


@client.command()
async def test( ctx ):
  await ctx.send(
    moder
  )
Ответ написан
Taruu
@Taruu
Шкодер на Python, и немного на C/С++ lua...
В данном случае нужно использовать Class
class MyClass:
    @client.command()
    async def _init_(sefl,ctx):
        self.moder = None
        embed = discord.Embed(
            title='Это мой заголовок',
            description='Это мой основной текст',
            color=0x83c837)
        self.moder = await ctx.send(embed=embed)

    @client.command()
    async def test(sefl,ctx):
        await ctx.send(
            self.moder
        )

Очень советую посмотреть что такое асинхронное программирование и почему там явно не место global переменным :/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы