В коде очень много callback'ов, которых нужно отработать однотипно. Не хочется писать под каждый callback отдельно, так как по сути, переменные отличаются только цифрой в названии. Как упростить код и сделать его меньше?
@dp.callback_query_handler(text='acc_1')
async def send(call: types.CallbackQuery):
await call.answer()
await call.message.delete()
await call.message.answer(f'Товар: {acc1_name}\nСтоимость: {acc1_price}')
@dp.callback_query_handler(text='acc_2')
async def send(call: types.CallbackQuery):
await call.answer()
await call.message.delete()
await call.message.answer(f'Товар: {acc2_name}\nСтоимость: {acc2_price}')
@dp.callback_query_handler(text='acc_3')
async def send(call: types.CallbackQuery):
await call.answer()
await call.message.delete()
await call.message.answer(f'Товар: {acc3_name}\nСтоимость: {acc3_price}')
@dp.callback_query_handler(text='acc_4')
async def send(call: types.CallbackQuery):
await call.answer()
await call.message.delete()
await call.message.answer(f'Товар: {acc4_name}\nСтоимость: {acc4_price}')
@dp.callback_query_handler(text='acc_5')
async def send(call: types.CallbackQuery):
await call.answer()
await call.message.delete()
await call.message.answer(f'Товар: {acc5_name}\nСтоимость: {acc5_price}')
Пробовал через for in range, но подставлялось только пятое значение
for i in range(1, 6):
@dp.callback_query_handler(text=f'acc_{i}')
async def send(call: types.CallbackQuery):
acc_name = globals().get(f"acc{i}_name")
acc_price = globals().get(f"acc{i}_price")
await call.answer()
await call.message.delete()
await call.message.answer(f'Товар: {acc_name}\nСтоимость: {acc_price}', reply_markup=inlinekeyboard_back_menu)