Описание тега yield-from

"yield from" is an expression in Python for delegating to a subgenerator.
1 ответ

Выход из генератора, в котором есть оператор возврата <value>

У меня есть генератор с return value утверждение в нем. Если я использую следующий на нем, я получаю Stopiteration: value от этого, как и ожидалось. Однако, когда я использую yield from value потерян. In [1]: def test(): ...: return 1 ...: yield 2 .…
30 янв '16 в 14:11
1 ответ

Не уверен, почему StopIteration не обрабатывается "yield from"

Глядя на следующий пример кода из книги "Свободный Python", который объясняет функциональность "двунаправленного туннеля" yield fromУ меня следующий вопрос. from collections import namedtuple Result = namedtuple('Result', 'count average') # the subg…
08 дек '18 в 22:57
1 ответ

Как я могу применить iter() к API пагинации?

Я смотрел выступление Рэймонда Хеттингера " Идиоматический Питон" и узнал об аргументе дозорного iter(), Я хотел бы попробовать применить его к коду кода, над которым я работаю, перебирая API, использующий разбиение на страницы (это Twilio, но не им…
23 дек '18 в 15:51
1 ответ

"yield from iterable" против "return iter(iterable)"

При переносе (внутреннего) итератора часто приходится перенаправлять __iter__ метод к основному повторяемому. Рассмотрим следующий пример: class FancyNewClass(collections.Iterable): def __init__(self): self._internal_iterable = [1,2,3,4,5] # ... # v…
12 май '15 в 10:03
1 ответ

Разница между `yield from foo()` и `for x в foo(): yield x`

В Python большинство примеров выходов из объясняют это словами: yield from foo() похож на for x in foo(): yield x С другой стороны, кажется, что это не совсем то же самое, и в нем есть какая-то магия. Мне немного неловко использовать функцию, котора…
17 сен '14 в 12:30
1 ответ

Python с использованием yield из функции

У меня есть список как: list=['2,130.00','2,140.00','2,150.00','2,160.00'] я хотел бы использовать такую ​​функцию, как def f(iterable): yield from iterable и применяя float(item.replace(',','')) for item in iterable в то же время, чтобы f(list) воз…
22 сен '14 в 10:28
1 ответ

Странный результат от выхода из в Python

У меня есть пример кода поиска в глубину в Python, как показано ниже. def DFS_paths_recursive(self, start, end, path = None): if path == None: path = [start] if start == end: yield path else: unvisited = set(self._graph_dic[start]) - set(path) for v…
22 окт '15 в 21:33
2 ответа

Применить функцию для объектов из "yield from" в python

# currently I have def some_func(): for match in re.finditer(regex, string): yield other_func(match) Мне было интересно, есть ли способ синтаксически раздавить его в одну строку # looking for something like def some_func(): yield from other_func(re.…
20 мар '16 в 10:25
2 ответа

Разница между `yield from $generator` и`return $generator`?

У меня есть функция, которая возвращает генератор. На данный момент он использует yield from: function foo() { $generator = getGenerator(); // some other stuff (no yields!) yield from $generator; } Если я заменю это yield from с простым returnэто чт…
12 май '16 в 13:23
1 ответ

Почему вложенные операторы yield from (делегирование генератора) приводят к завершающему значению `None`?

Возможно ли гнездиться yield from заявления? Простая форма очевидна: def try_yield1(): x = range(3) yield from x Который производит: 0 1 2 Но что, если у меня есть вложенные генераторы? def try_yield_nested(): x = [range(3) for _ in range(4)] yield …
13 апр '17 в 06:33
2 ответа

Одновременная загрузка и обработка больших файлов в Python

У меня есть список URL для загрузки больших файлов (например, сжатых архивов), которые я хочу обработать (например, распаковать архивы). Как загрузка, так и обработка занимают много времени, а обработка дискового ввода-вывода требует значительных ре…
21 сен '16 в 21:55
3 ответа

Что делает return при использовании выражения yield from?

Я не смог найти никаких примеров возвращаемых значений из yield from выражение Я пробовал этот простой код, но безуспешно: def return4(): return 4 def yield_from(): res = yield from range(4) res = yield from return4() def test_yield_from(): for x in…
09 окт '15 в 10:26
0 ответов

В чем разница между "yield" и "yield from" в Python?

Я использую основные yield Ключевое слово много в моем коде для создания генераторов и сопрограмм... Пока ищу разные yield связанные решения в Интернете, я также нашел yield from синтаксис. Оба используются в генераторах. Я не чувствую, что мне здес…
22 мар '16 в 22:46
2 ответа

Невозможно получить изнутри асинхронную функцию и получить данные

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

Выход из разницы в listcomp или genexpr

Почему результат отличается? In [19]: [(yield from (1, 2)) for x in [1]] Out[19]: &lt;generator object &lt;listcomp&gt; at 0x0438B3C0&gt; In [20]: list(_) Out[20]: [1, 2] In [21]: ((yield from (1, 2)) for x in [1]) Out[21]: &lt;generator object &lt;…
2 ответа

Как правильно выходить из потока?

У меня есть Connection объект, который используется для хранения потоков чтения и записи asyncio соединения: class Connection(object): def __init__(self, stream_in, stream_out): object.__init__(self) self.__in = stream_in self.__out = stream_out def…
3 ответа

Изменение доходности от возвращаемого значения

Допустим, у меня есть эти парсеры: parsers = { ".foo": parse_foo, ".bar", parse_bar } parse_foo а также parse_bar оба генератора, которые выдают строки по одной. Если я хочу создать одну функцию отправки, я бы сделал это: def parse(ext): yield from …
12 апр '16 в 19:43
1 ответ

В Python выход из блокировки в DatagramProtocol.datagram_received делает функцию никогда не вызываемой

Я хочу синхронизировать данные между сопрограммами, и в итоге получаю метод, который не вызывается, когда в нем есть "yield". Чтобы быть более точным, когда я реализую класс DatagramProtocol с методом datagram_received согласно документу ( вдохновле…
20 ноя '17 в 02:15
0 ответов

Взлом на итерационный процесс os.walk()

Моя цель - хранить все файлы и каталоги в структурированном дереве данных, где каждый из них: каталог является узлом файл это лист Мой код ниже работает нормально. Однако я делаю только один шаг за раз и прерываю / перезапускаю процесс обхода для ка…
27 фев '18 в 20:33
2 ответа

Что означает выражение "a = yield from f()"?

Итак, вот выражение Python: a = yield from f() Что это значит? Где это можно использовать? Какой объект должен f быть? Какова будет ценность a после выражения оценивается? Здесь есть несколько вопросов о стекловом потоке о питоне yield а также yield…
21 апр '17 в 07:49