Вывод True и []

Мне было интересно почему
True and []
возвращает [] вместо False

Является ли выражение синтаксическим сахаром?

2 ответа

Решение

Ответ найден в 5.10. Булевы выражения:

Выражение x and y сначала оценивает x; если x равен false, возвращается его значение; в противном случае вычисляется y и возвращается полученное значение.

Этот синтаксический сахар иногда используется как троичный оператор в Python

C++: someVar = someCondition ? valueIfTrue : valueIfFalse;
Python: someVar = someCondition and valueIfTrue or valueIfFalse 

Редактировать: Оказывается, согласно комментариям:), это главная ошибка в Python и должна быть заменена на

someVar = valueIfTrue if condition else valueIfFalse
Другие вопросы по тегам