@strizhechenko Да ты не понял. Суть в количестве переменных, а в том, что конструкция в первой строне правоассоциативна! То есть у них не return создает контекст верхнего уровня для всей строки, как в питоне, по сути выполняясь вот так
return (var_1 if var_1 is not nil else var_2 = method())
а, тернарник, создавая две альтернативных ветки выполнения - с возвратом и с присвоением
(return var_1) if var_1 is not nil else (var_2 = method())
по пути обходя возврат по негативной ветке и продолжая выполнять код дальше. В питоне строки 2 и 3 были бы дедкодом и никогда не выполнялись бы