Создание и изменение глобальной переменной с помощью asyn c в Discord.py - PullRequest
0 голосов
/ 21 июня 2020

Есть ли способ, которым я могу 1. Создать переменную, которая может использоваться различными командами async def command(ctx, *, arg? например,

import discord
import asyncio
from discord.ext import commands


@bot.command(pass_context=True)
async def on_ready():
    print('Bot is online and ready.')
    #creates the global variable called like "baseNumberID"
async def command(ctx, *, arg):
    baseNumberID =+ 1
bot.run("TOKEN")

Итак, я хочу создать переменную при запуске, которую затем можно будет изменить / отредактировать и / или добавить в.

1 Ответ

1 голос
/ 21 июня 2020

Да. Вы можете создавать переменные уровня модуля и обращаться к ним с помощью ключевого слова global, как и в неасинхронной функции. Стандартные правила области видимости переменных применяются, как и любая другая функция python. Поскольку ваш вопрос не указан с c по discord, и у меня нет discord, я только что обновил стандартную программу asyncio "hello world".

import asyncio

foo = 0

async def say(what, when):
    await asyncio.sleep(when)
    global foo
    foo += 1
    print(what, foo)

loop = asyncio.get_event_loop()
loop.run_until_complete(say('hello world', 1))
loop.close()
...