Как изменить несколько глобальных переменных и присвоить им разные значения в python & telebot


dudka_amount_malina = 'none'    
dudka_amount_yablokopersik = 'none'
dudka_amount_persik = 'none'

@bot.message_handler(func=lambda msg: msg.text == '!change ass')
def echo_all(message):
    markup = types.InlineKeyboardMarkup(row_width=2).add(
        types.InlineKeyboardButton("dudka_amount_malina на false", callback_data='z1'),
        types.InlineKeyboardButton("dudka_amount_malina на true", callback_data='q1'),
        types.InlineKeyboardButton("dudka_amount_persik на false", callback_data='c1'),
        types.InlineKeyboardButton("dudka_amount_yablokopersik на false", callback_data='x1'))
    bot.reply_to(message, 'Нажмите на нужный вам вариант:', reply_markup=markup)


@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    bot.answer_callback_query(callback_query_id=call.id, show_alert=False, text="Changed succsefully")

    if call.data == 'q1':
        global dudka_amount_malina
        dudka_amount_malina = 'В наличии'

    elif call.data == 'z1':
        global dudka_amount_malina
        dudka_amount_malina = 'Нет в наличии'


    elif call.data == 'x1':
        global dudka_amount_yablokopersik
        dudka_amount_yablokopersik = 'Нет в наличии'

    elif call.data == 'c1':
        global dudka_amount_persik
        dudka_amount_persik = 'Нет в наличии'

Тут код должен изменять одну переменную на значение "Есть в наличии" и "Нет в наличии", однако выдает синтаксическую ошибку


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

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

Попробуй так

@bot.message_handler(func=lambda msg: msg.text == '!change ass')
def echo_all(message):
    markup = types.InlineKeyboardMarkup(row_width=1).add(
        types.InlineKeyboardButton("Изменить dudka_amount_malina", callback_data='z1'),
        types.InlineKeyboardButton("Изменить dudka_amount_yablokopersik", callback_data='x1'))
    bot.reply_to(message, 'Нажмите на нужный вам вариант:', reply_markup=markup)


@bot.callback_query_handler(func=lambda call: True)
def callback_inline(call):
    bot.answer_callback_query(callback_query_id=call.id, show_alert=False, text="Changed succsefully")
    if call.data == 'z1':
        global dudka_amount_malina
        dudka_amount_malina = 'Нет в наличии'

    elif call.data == 'x1':
        global dudka_amount_yablokopersik
        dudka_amount_yablokopersik = 'Нет в наличии'

UPD.

global dudka_amount_malina
if call.data == 'q1':
    dudka_amount_malina = 'В наличии'
elif call.data == 'z1':
    dudka_amount_malina = 'Нет в наличии'
→ Ссылка