Ваша Всратость
Наткнулась на статейку про Питон и прикольный имитатор тернарного оператора (после Js мне его сильно не хватает, с ним легко писать однострочную чорную магию, не воспринимаемую без стороннего приема психоактивных веществ).

(a, b)[c] # c ? b : a


Работает по принципу приведения выражения c, стоящего в квадратных скобках-индексе, сначала к булевскому значению, а потом к численному. И потом вытаскиванию из кортежа или a (если условие - false), или b - если труЪ. Прикольна.

@музыка: Dresden Dolls - My alcoholic friends

@темы: кодерастия

Комментарии
17.05.2020 в 01:42

Мегакрендель: заколебарь, жаболекарь, зомболекарь, лежебокарь
Эвалуирует оба. Поэтому лучше так: (lambda: a, lambda: b)[c]()
17.05.2020 в 01:48

Ваша Всратость
Ща проверю, пока не приходилось (в питоне) писать лямбды, которые не принимают ничего на вход.
UPD.
Работает. Больше неочевидного кода Б-гу неочевидного кода.
17.05.2020 в 10:17

писатель прозаик
Это что-то компилярное для малолеток
17.05.2020 в 10:19

Мегакрендель: заколебарь, жаболекарь, зомболекарь, лежебокарь
Даже эта конструкция читается лучше, чем ?: (почти не иронизирую).
17.05.2020 в 11:57

Ваша Всратость
2Заболекарь, Даж не знаэ, читаемость кода - штука во многом субъективная. Не стала бы сравнивать эзотерический арт-код jsFuck-стайл и дуболомно-простой легаси с функцыями по 1-2k строк и говорящими именами переменных типа ax, ai, i, ii, i0, i1 и т.д - в каждом из них есть свои особые изысканные удовольствия.
27.05.2020 в 15:50

— Сэр, мы окружены! — Заебись! Теперь мы можем атаковать в любом направлении!
Сероквелюшка, Да это как раз читается легко, главное скобки ставить, что бы не гадать в каком порядке какие операторы выполняются.
Почитайте лучше про обфускацию кода, вот это как раз не читаемо :-D
27.05.2020 в 17:15

Ваша Всратость
2Солнечный ветерок, Приходилось сталкивацо, но косвенно. Т.к йа веб-макако, то редко поднимаюсь выше уровня uglify и webpack, которые скручивают несколько отдельных скриптов воедино, урезают имена переменных до нечитаемых, избавляют нас от форматирования кода, вычищают пробелы.