Tapokpy
@Tapokpy
starting

Динамическое создание переменных (InlineKeyboard), правильно ли?

from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
category_menu_list = [['1', 'Электроника'], ['2', 'Компьютеры и сети'], ['3', 'Бытовая техника'], ['4', 'Стройка и ремонт'], 
['5', 'Дом и сад'], ['6', 'Авто и мото'], ['7', 'Красота и спорт'], ['8', 'Детям и мамам'], ['9', 'Работа и офис'], ['16', 'Еда']]

for i, n in enumerate(category_menu_list, start=1):
    locals()["sub_cat_" + str(i)] = InlineKeyboardMarkup(row_width=1) # есть ли аналог  locals()
    for q, w in enumerate(all_items[n[1]]):
        name_button = w
        q = InlineKeyboardButton(text=name_button, callback_data=name_button)
        locals()["sub_cat_" + str(i)].insert(q)
    cancel_button = InlineKeyboardButton(text="Назад", callback_data="menu")
    locals()["sub_cat_" + str(i)].insert(cancel_button)

Отрывок кода по созданию меню для бота, можно ли сделать как-нибудь по другому, по-проще?
@dp.callback_query_handler(text=['Эле'])
async def show_sub_cat_1(call: CallbackQuery):
    await call.message.edit_reply_markup(reply_markup=sub_cat_1)

@dp.callback_query_handler(text=['Ком'])
async def show_sub_cat_2(call: CallbackQuery):
    await call.message.edit_reply_markup(reply_markup=sub_cat_2)

@dp.callback_query_handler(text=['Быт'])
async def show_sub_cat_3(call: CallbackQuery):
    await call.message.edit_reply_markup(reply_markup=sub_cat_3)
  • Вопрос задан
  • 455 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы