Превращение типов в 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
, кроме нуля.
Подробнее в документации.
Это облегчает код и не вредит читаемости.