Как вывести переменную из функции python?

@client.command()
async def option(ctx, messages:str):
    await ctx.send('Complete!')
@client.event
async def on_member_join(member):
    await ctx.send(f'{messages}')

Я хочу, чтобы переменная messages, которую я прописал в async def выводилась в последней строчке кода.


Ответы (1 шт):

Автор решения: denisnumb

Проще всего создать глобальную переменную и работать с ней из функций.

Пусть это будет g_messages, изначально - пустой объект. В обеих функциях прописываем строку global g_messages для работы с глобалкой. После этого, в функции option(), при получении messages присваиваем глобальной переменной полученное значение. После чего спокойно обрабатываем его во второй функции, уже в качестве g_messages

Код:

g_messages = None

@bot.command()
async def option(ctx, messages:str):
    global g_messages
    g_messages = messages
    await ctx.send('Complete!')

@bot.command()
async def on_member_join(member):
    global g_messages
    await ctx.send(f'{g_messages}')
→ Ссылка