2015-11-25 2 views
-1

Рассмотрим строку из примера concurrent.futures (https://docs.python.org/3/library/concurrent.futures.html#threadpoolexecutor-example):Python: странное понимание набора: частичное применение? неявный перенос?

future_to_url = {executor.submit(load_url, url, 60): url for url in URLS} 

Не получить представление, что именно происходит на ее executor.submit (load_url, URL, 60): URL. По-видимому, установлено понимание и Исполнитель. применяется к каждому URL в URLS. Но какой метод используется для исправления load_url и параметров ?? Это какой-то curriyng или частичное применение с использованием оператора столбца, но какая особенность языка?

+3

Это словарь понимание, а не набор понимания, таким образом, ':' –

+2

мало внимания: это словарь понимание :) – Maciek

+0

, что это верно))) – Alex

ответ

1

Очевидно, что оно установлено понимание

Нет, это ДИКТ понимание. Выражение перед двоеточием - это каждый новый ключ, а выражение after - соответствующее значение.

+0

да, спасибо))))) – Alex

1

load_url - метод, определенный только выше (load_url(url, timeout)).

Я думаю, executor.submit(load_url,url,60) звонки в какой-то момент load_url(url,60). Итак, 60 - это таймаут (вероятно, потому, что 60s = 1mn).

Словарь понимание относится executor.submit к каждому URL с теми же двумя параметрами load_url и 60, и один изменяющимися параметр url.

+0

Да, это * * словарь ** понимание. Спасибо))) – Alex

+0

Был ли это ** ваш вопрос? Я думал, что это «какой метод используется для установки load_url и 60 параметров?», И мой ответ таков: нет техники, они просто исправлены. – Mel

Смежные вопросы