Поскольку вы просили о лучшей читабельности, вы могли бы рассмотреть лямбда-вариант, но с небольшим поворотом: инициализируйте аргументы. Вот различные варианты, которые я использую сам, начиная с первого, который я попробовал, и заканчивая тем, который я использую чаще всего сейчас.
Предположим, у нас есть функция (не показана), которая получает data_structure
в качестве аргумента, и вам нужно неоднократно получать из нее x
.
Первая попытка (согласно ответу 2012 года от huon):
(lambda x:
x * x + 42 * x)
(data_structure['a']['b'])
С несколькими символами это становится менее читаемым, поэтому я попробовал:
(lambda x, y:
x * x + 42 * x + y)
(x = data_structure['a']['b'],
y = 16)
Это все еще не очень читабельно, так как повторяет символические имена. Итак, я попробовал:
(lambda x = data_structure['a']['b'],
y = 16:
x * x + 42 * x + y)()
Это почти читается как выражение «пусть». Позиционирование и форматирование заданий, конечно же, ваше.
Эту идиому легко узнать по началу '(' и окончанию '()'.
В функциональных выражениях (также и в Python) многие круглые скобки имеют тенденцию накапливаться в конце. Нечетный '(' легко заметить.
person
Erik
schedule
05.12.2017
let
. - person BrenBarn   schedule 31.08.2012