Вычисление тайлов для отображения в MapRect при «увеличенном» увеличении набор накладываемых листов

Вот минимальная реализация sprintf в JavaScript: он выполняет только «% s» и «% d», но я оставил место для его расширения. Это бесполезно для ОП, но другие люди, которые натыкаются на эту ветку из Google, могли бы извлечь из этого пользу.

function sprintf() {
    var args = arguments,
    string = args[0],
    i = 1;
    return string.replace(/%((%)|s|d)/g, function (m) {
        // m is the matched format, e.g. %s, %d
        var val = null;
        if (m[2]) {
            val = m[2];
        } else {
            val = args[i];
            // A switch statement so that the formatter can be extended. Default is %s
            switch (m) {
                case '%d':
                    val = parseFloat(val);
                    if (isNaN(val)) {
                        val = 0;
                    }
                    break;
            }
            i++;
        }
        return val;
    });
}

Пример:

alert(sprintf('Latitude: %s, Longitude: %s, Count: %d', 41.847, -87.661, 'two'));
// Expected output: Latitude: 41.847, Longitude: -87.661, Count: 0

В отличие от аналогичных решений в предыдущих ответах, этот выполняет все замены за один раз , поэтому он не будет заменять части ранее замененных значения.

175
задан Community 23 May 2017 в 12:10
поделиться

1 ответ

Существует на самом деле действительно простой способ сделать это, когда Вы просто хотите к печать вывод:

import subprocess
import sys

def execute(command):
    subprocess.check_call(command, shell=True, stdout=sys.stdout, stderr=subprocess.STDOUT)

Здесь мы просто указываем на подпроцесс на наш собственный stdout и используем существующий, успешно выполняются или API исключения.

2
ответ дан 23 November 2019 в 20:26
поделиться
Другие вопросы по тегам:

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