Я пришел к очень неприятному примеру оператора if-else в python, где код выглядел неплохо, но результат был совершенно иным, чем ожидалось. Вот короткая версия:python if - else приоритет оператора
print 1 + 4 if None else 3 # prints 3
Operator Precedence Глядя на стол, кажется, что «если - то еще» имеет почти самый низкий приоритет.
Есть ли что-нибудь особенное с «if-else», которое обрабатывает все, что находится слева от «if», как одно выражение?
Как ни странно, ваши C++ пример печатает '4' независимо от' + 'и'? ' 'С относительный приоритет. –
Разве вы не ответили на свой вопрос?Причина, по которой вы видите это поведение, в том, что оператор if/else имеет самый низкий приоритет (за исключением лямбда). – BrenBarn
Я думаю, что скобка - это то, что вы ищете, не так ли? Просто оберните «(4, если нет еще 3)» в скобках, и вы закончили –