Превращение типов в bool

Часто в коде приходится проверять переменные на нулевые значения. Например, пустой список:

if len(users) == 0:
    pass

Или пустая строка:

if user.email == '':
    pass

Или ноль:

if user.level == 0:
    pass

Все три примера выше – неверные. Вот их верные аналоги:

if not users:
    pass

if not user.email:
    pass

if not user.level:
    pass

Дело в том, что любое условное выражение неявно конвертируется в boolean. Для каждого типа правила конвертации свои. Например, любая строка превратится в True, кроме пустой. Любое число – тоже True, кроме нуля. Подробнее в документации.

Это облегчает код и не вредит читаемости.


Попробуйте бесплатные уроки по Python

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

Переходите на страницу учебных модулей «Девмана» и выбирайте тему.

Хочу код-ревью