Сжатие оператора `x if x else y` в PythonPython

Программы на Python
Ответить
Anonymous
 Сжатие оператора `x if x else y` в Python

Сообщение Anonymous »

Я хорошо знаком с подходом тернарного оператора Python:

value = foo if something else bar


Мой вопрос очень простой: без предварительного присвоения можно ли каким-либо образом ссылаться на оцениваемый термин в (if ...) из одного из возвращаемых операндов (... if или еще ...)?

Мотивация здесь в том, что иногда я использую выражения в if ..., которые именно то, что я хотел бы получить в результате тройной операции; Однако случается, что для небольших выражений нет проблем с повторением, но для более длинных выражений это становится несколько неприятно. Возьмем это в качестве примера:

value = info.findNext("b") if info.findNext("b") else "Oompa Loompa"


Подробнее здесь: https://stackoverflow.com/questions/141 ... -in-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»