Принудительно использовать бессерверную лямбда-функцию для использования boto3, установленного в venv, вместо того, который уже доступен в AWS Server.

Wikipedia on closures :

В информатике закрытие является функцией вместе со средой ссылок для нелокальных имен (свободных переменных) этой функции.

blockquote>

Технически, в JavaScript каждая функция является замыканием. Он всегда имеет доступ к переменным, определенным в области окружения.

Поскольку конструкция, определяющая область видимости в JavaScript, является функцией, а не кодовым блоком, как на многих других языках, что мы обычно подразумеваем под замыканием в JavaScript - это функция, работающая с нелокальными переменными, определенная в уже выполненной окружающей функции.

Закрытия часто используются для создания функций с некоторыми скрытыми личными данными (но это не всегда так).

var db = (function() {
    // Create a hidden object, which will hold the data
    // it's inaccessible from the outside.
    var data = {};

    // Make a function, which will provide some access to the data.
    return function(key, val) {
        if (val === undefined) { return data[key] } // Get
        else { return data[key] = val } // Set
    }
    // We are calling the anonymous surrounding function,
    // returning the above inner function, which is a closure.
})();

db('x')    // -> undefined
db('x', 1) // Set x to 1
db('x')    // -> 1
// It's impossible to access the data object itself.
// We are able to get or set individual it.

ems

В приведенном выше примере используется анонимная функция, которая была выполнена один раз. Но этого не должно быть. Его можно назвать (например, mkdb) и выполнить позже, генерируя функцию базы данных каждый раз при ее вызове. Каждая сгенерированная функция будет иметь свой собственный скрытый объект базы данных. Другим примером использования замыканий является то, что мы не возвращаем функцию, а объект, содержащий несколько функций для разных целей, каждая из которых имеет доступ к тем же данным.

0
задан Venkatesh 22 March 2019 в 11:03
поделиться