Вредные советы 9. Как не надо сравнивать с True



Продолжая прошлый разговор про сравнения (тогда было про None), в этот раз говорим про True. Практически в любом языке программирования есть этот антипаттерн.



Антипаттерн

Как не надо сравнивать с True:



flag = True

if flag == True:

print("Вот так делать не надо!")




А как надо?

Тут есть два пути. Во-первых, обратите внимание на документацию Питончика:

In the context of Boolean operations, and also when expressions are used by control flow statements, the following values are interpreted as false: False, None, numeric zero of all types, and empty strings and containers (including strings, tuples, lists, dictionaries, sets and frozensets). All other values are interpreted as true. User-defined objects can customize their truth value by providing a __bool() method__



Что же это значит? А значит что для любого не из списка (False, None, нуля во всех числовых типах и пустых строках) выражение if flag: будет равно True.



Есть еще и другой вариант, но он похуже. Используется, когда вам нужно отличить True от другие True-like значений. Выглядит он как if flag is True:



#ВредныеСоветы