Как зациклить получения данных из библиотеки 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 шт):
В чем проблема поместить получение данных внутрь функции ковид(), чтобы они были свежими при каждом новом вызове?
Вот наглядная демонстрация вашей ошибки на простом примере:
Программа запрашивает ввод, а затем выводит введенное значение каждый раз при вызове функции 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()