Какие знаешь методы генеротора в Python
Python
Middle
Aston
Какие знаешь методы генеротора в Python
Ответы
В Python генераторы создаются с помощью функций с `yield` или генераторных выражений. Основные методы:
- `__next__()` - возвращает следующее значение (вызывается неявно в `next()`)
- `send(value)` - отправляет значение в генератор (становится результатом `yield`)
- `throw(exc)` - бросает исключение в точке `yield`
- `close()` - завершает генератор (вызывает `GeneratorExit`)
Пример:
```
def gen():
val = yield 1
yield val + 2
g = gen()
print(next(g)) # 1
print(g.send(10)) # 12
g.close() # завершаем генератор
```
Важно: после `close()` или при завершении генератор выбрасывает `StopIteration`. Методы `send()` и `throw()` можно использовать только после первого вызова `next()`.