Python В массив внутри if добавляется только последнее значение
Мне необходимо, чтобы по нажатию на кнопки и получению соответствующего callback - tvorog, moloko И так далее элемент добавлялся в массив. Но вместо этого, в массиве остается только последний call.data сколько бы до этого не вызывались другие.
@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
global ingredients
ingredients = []
if call.data == "tvorog":
ingredients.append('tvorog')
if call.data == "moloko":
ingredients.append('moloko')
if call.data == "muka":
ingredients.append('muka')
if call.data == "eggs":
ingredients.append('eggs')
@bot.message_handler(regexp="Готово")
def gotovo(message):
bot.send_message(message.chat.id, ingredients)
В итоге при каждом выводе ingredients (в message_handler) выдает последнюю вызванную if c одним элементом. Что я делаю не так?
Ответы (1 шт):
Автор решения: Alealan
→ Ссылка
При каждом вызове функции у вас обновляется переменная ingredients. Вынесите её вне функции.
ingredients = []
def callback_inline(call):