Как зациклить получения данных из библиотеки covid?

covid = Covid()
covid.get_data() 


@bot.group(invoke_without_command=True) # Создаем команду
async def ковид(ctx):
    em = discord.Embed(title = "Covid-19", description = "В данной таблице находится общяя информация о Covid-19", color = ctx.author.color)

em.add_field(name = "Зараженных", value = active)
em.add_field(name = "Подтвержденные", value = confirmed)
em.add_field(name = "Умерших", value = deaths)
em.add_field(name = "Выздоровевших", value = recovered)

await ctx.send(embed = em)

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

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

В чем проблема поместить получение данных внутрь функции ковид(), чтобы они были свежими при каждом новом вызове?


Вот наглядная демонстрация вашей ошибки на простом примере:

Программа запрашивает ввод, а затем выводит введенное значение каждый раз при вызове функции print_input()

text = input()

def print_input():
    print(text)

print_input()
print_input()
print_input()

Программа просто три раза выведет первоначальный текст, так как вы ввели его только один раз.

Вам нужно, чтобы ввод текста запрашивался каждый раз при вызове функции

Для этого перемещаем text = input() внутрь функции print_input() и все.

def print_input():
    text = input()
    print(text)

print_input()
print_input()
print_input()

Теперь прога запросит ввод текста 3 раза и выведет каждый раз свежий результат.


По аналогии, все, что вам нужно сделать, это переместить получение данных внутрь функции ковид(). Тогда при каждом вызове данные будут запрашиваться заново и всегда будут актуальными.

@bot.group(invoke_without_command=True) # Создаем команду
async def ковид(ctx):
    covid = Covid()
    covid.get_data() 
→ Ссылка