@MrxAlexo

Как избавиться от большого количества конструктий if-else?

Пишу бота, который использует запросы к api сайта. Приходится обрабатывать коды ошибок. Приведу пример:
response = auth() # тут ответ от api сайта.
if response.get('code') == 0:
    get_products = get_products_by_title('Test product')
    if get_products.get('code') == 0:
        buy = buy_product(get_products.get('data').get('product_id'))
        if buy .get('code') == 0:
            print('Товар куплен!')
        else:
            print('Ошибка покупки товара')
    else:
        print('Ошибка получения товаров')
else:
    print('Ошибка авторизации')

И только здесь использовано 3 конструкции, а таких у меня в коде множество. Помимо этого есть множество других кодов ошибок, которые тоже необходимо обрабатывать. Подскажите, как это красивее и эффективнее написать без овнокода, чтобы это имело читабельный вид?
  • Вопрос задан
  • 181 просмотр
Пригласить эксперта
Ответы на вопрос 3
@rPman
Это нормально.
И да, много это не 2-3 уровня а сотни и тысячи.

Да, у программистов обычно зуд на такие вещи, видишь повторяющийся код или логические конструкции и пытаешься их заменить на какое то их описание и код который по этому описанию делает всю логику.

Всегда нужно найти момент и силы остановиться и не доводить до маразма, а то так дойдет до написания языка программирования с помощью которого описываешь свою логику, сложность кода растет, вероятность ошибок тоже.
Ответ написан
@dima20155
you don't choose c++. It chooses you
Есть также паттерны, например, цепочка обязанностей, которые позволяют немного упростить такие проверки, но этот паттерн полезен для сложных проверок/команд
Ответ написан
Комментировать
@thatmaniscool
Для решения вашей задачи используйте тернарный оператор.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
25 нояб. 2024, в 02:45
2000 руб./за проект
24 нояб. 2024, в 23:46
20000 руб./за проект