Pull to refresh

Comments 14

читаемость меньше такого варианта имхо
python вообще богат на такие выкрутасы

a = True
print ['False','True'][a] # True

Хосподи, минут 5 втыкал, пока понял :)
Для тех кто устал после тяжелого дня:
['False', 'True'][True] == ['False', 'True'][1] == 'True' # :)



Спасибо большое! Питон не перестаёт удивлять.
Увы, этот код не идентичен тернарному оператору из C. По той простой причине, что в Вашем случае ОБА выражения из списка будут вычислены, а в случае C — только нужное.
print "%s" % (1 > 2)

Но суть то не в том чтоб True/False напечатать :)
Бля, как ненавижу когда так пишут, кто бы знал. Когда на код-ревью приходит патч с такими штуками сразу намертво залипаю.
Объясните почему, я постараюсь в след. раз исправить все ошибки.
Постарайтесь исправить их в этот раз
Версия про Машину Поста интересна. Однако, в действительности тернарный оператор не был придуман в C, а пришел в него уже готовым из CPL, чуть поменяв синтаксис. Там это писалось так:

BooleanExpr -> TrueExpr, FalseExpr


На синтаксис Машины Поста не похоже совершенно.

Основы синтаксиса CPL можно посмотреть в статье "The main features of CPL". Ответ на вопрос «давайте разберемся почему он именно такой, а не другой» нужно искать именно в этой статье. :)

Так что красивое, но совпадение.
Sign up to leave a comment.

Articles