я должен иметь с версией Python < 2,5 (это 2.4.3 конкретики)Лучший способ сделать тройные условными в Python <2,5
Кажется, что тройные операторы были в Python вводит начиная с 2.5. Для тех, кто не знаком, тройные операторы в Python> = 2,5 выглядеть следующим образом:
def do_ternary(flag):
return "foo" if flag else "bar"
Я хотел бы знать, какие-то решения, чтобы эмулировать в ранних версиях Python. Я могу с уверенностью это сделать, если ... еще, но я ищу что-то более питоническое, чтобы мне не стыдно было надеть какой-то код уровня производства :)
Спасибо за помощь!
ваше возражение, если флаг: return "foo" else: return "bar", что он недостаточно стильный? или есть какая-то конкретная причина? – mfrankli
хорошо, логика в порядке, но это не тройной оператор. На самом деле это не вопрос «стильный» или нет, это скорее о факторизации кода и написании чистого кода. Мне не очень нравится иметь целые деревья, если ... else в моем коде. –
Если вы хотите что-то сделать, если тест истинен и что-то еще в противном случае, '' if ...: ... else: ... '' кажется довольно разумным. Не путайте _terse_ и _readable_. Читаемые всегда должны побеждать, если вы не можете обойти оба. –