Как динамически создавать namedtuple из списка списков? [Дубликат]

Вы можете использовать эту пользовательскую библиотеку (написанную с помощью Promise) для выполнения удаленного вызова.

function $http(apiConfig) {
    return new Promise(function (resolve, reject) {
        var client = new XMLHttpRequest();
        client.open(apiConfig.method, apiConfig.url);
        client.send();
        client.onload = function () {
            if (this.status >= 200 && this.status < 300) {
                // Performs the function "resolve" when this.status is equal to 2xx.
                // Your logic here.
                resolve(this.response);
            }
            else {
                // Performs the function "reject" when this.status is different than 2xx.
                reject(this.statusText);
            }
        };
        client.onerror = function () {
            reject(this.statusText);
        };
    });
}

Пример простого использования:

$http({
    method: 'get',
    url: 'google.com'
}).then(function(response) {
    console.log(response);
}, function(error) {
    console.log(error)
});
1
задан javadba 3 June 2015 в 04:24
поделиться

2 ответа

Используйте Point(*t), чтобы развернуть содержимое t в качестве аргументов конструктора Point.

1
ответ дан augurar 28 August 2018 в 09:51
поделиться

Более эффективное решение: используйте специальный _make альтернативный конструктор , чтобы непосредственно построить namedtuple из произвольного итеративного без создания дополнительного промежуточного tuple s (как распаковка звезды к основному конструктору требуется). Выполняется быстрее, меньше отбросов памяти:

Point._make(t)

Несмотря на имя, _make является частью общедоступного API; он назван с лидирующим подчеркиванием, чтобы избежать конфликтов с именами полей (которые не могут начинаться с подчеркивания).

1
ответ дан ShadowRanger 28 August 2018 в 09:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: