Интересно, есть ли хороший способ привязать локальные переменные в python. Большая часть моей работы связана с сборкой коротких сценариев обработки данных или текстовой обработки с помощью ряда выражений (когда разрешен python), поэтому определение классов объектов (для использования в качестве пространств имен) и их создание кажется немного большим.привязка локальных переменных в python
Так что я имел в виду что-то вроде в (общий) шепелявость, где вы могли бы сделать что-то вроде
(setq data '(1 2 3))
(setq output
(let ((x (nth 2 data)))
x + x))
В питона, лучшее, что я мог придумать это
data = [1,2,3]
output = ((lambda x: x + x)
(data[2]))
Это, конечно, очень простые примеры, но может ли быть что-то такое же масштабируемое, как let или let * в lisp? Являются ли определяющие классы лучшим способом для создания локального пространства имен? ... (но чувствует себя немного менее интерактивным)
Редактировать: Поэтому, чтобы далее объяснить намерение (мои извинения за неопределенность), я хочу для уменьшения использования глобальных переменных. Поэтому в приведенном выше случае я хотел использовать оператор извлечения как общий случай любого типа операции, который, возможно, не захочет повторять. Например, можно было бы написать либо
output = data[2] + data[2]
или
x = data[2]
output = x + x
del x
для достижения такого же результата. В сущности, если желаемая операция над «данными» более сложна, а затем получает второй элемент, я бы не хотел вводить его несколько раз или позволить компьютеру вычислить значение того же выражения больше раз, чем это необходимо. Поэтому в большинстве случаев присваивать результат операции, в данном случае, данные [2] или operator.itemgetter (2) (данные), некоторой переменной в глобальном пространстве, но у меня есть отвращение к остающимся переменным вокруг в глобальном пространстве, если они необходимы только для хранения промежуточных значений при вычислении ... следовательно, использование команды «del» сразу после этого. Определение локальной среды или пространства имен и промежуточных результатов привязки к локальным переменным было бы идеальной альтернативой.
ОК, обновил свой ответ. –