Избыточные проверки if-else усложняют чтение кода.


Пример 1

При таком высушивании код избавляется ещё и от [[../Мусор/Избыточные True и False|избыточных True и False]].

Плохо:


def get_link_status(link):
...
if link_status:
    return True
else:
    return False

Хорошо:


def get_link_status(link):
...
return bool(link_status)


Пример 2

Плохо:


def is_active_user(user):
...
user_status = False
return True if user_status else False

Плохо:


def is_active_user(user):
...
user_status = True
return True if user_status else False

Хорошо:


def is_active_user(user):
...
user_status = False
return user_status

Хорошо:


def is_active_user(user):
...
user_status = True
return user_status


Пример 3

В данном случае проверять image_src беcсмысленно. Функция всё равно вернёт какое-то значение отличное от None.

Плохо:


def get_book_image_url(soup, book_page_url):
    img_rel_path = soup.find('div', class_='bookimage').find('img')['src']
    img_src = urljoin(book_page_url, img_rel_path)
    return img_src

...
image_src = get_book_image_url(soup, book_url)
if image_src:
    download_image(image_src)

Хорошо:


def get_book_image_url(soup, book_page_url):
    img_rel_path = soup.find('div', class_='bookimage').find('img')['src']
    img_src = urljoin(book_page_url, img_rel_path)
    return img_src

...
image_src = get_book_image_url(soup, book_url)
download_image(image_src)