Русский
Открыть в Telegram

Пост Генератор можно остановить. Ты можешь явно вызвать g.close(), но обычно это делает сборщик мусора. Когда вызывается clos…

23 июня 2026
Б
Библиотека Python разработчика | Книги по питону
Генератор можно остановить. Ты можешь явно вызвать g.close(), но обычно это делает сборщик мусора. Когда вызывается close, в точке, где выполнение генератора было приостановлено, выбрасывается исключение GeneratorExit: def gen(): try: yield 1 yield 2 finally: print('END') g = gen() print(next(g)) # выведет '1' g.close() # выведет 'END' Обрати внимание на три момента: 1. Нельзя использовать yield при обработке GeneratorExit Если в блоке finally попытаться сделать yield, возникнет ошибка RuntimeError: def gen(): try: yield 1 finally: yield 3 # ошибка! g = gen() next(g) g.close() # RuntimeError 2. Исключение не выбрасывается, если генератор ещё не запускался В этом случае генератор просто переходит в состояние остановлен, но finally не выполняется: def gen(): try: yield 1 finally: print('END') g = gen() g.close() # ничего не выводит print(list(g)) # выведет '[]' 3. close() ничего не делает, если генератор уже завершён Если генератор полностью отработал, close() не вызывает finally повторно и просто игнорируется: def gen(): try: yield 1 yield 2 finally: print('END') g = gen() print(list(g)) # ['1', '2'] print('Closing now') g.close() # Вывод: # END # [1, 2] # Closing now 📲 Мы в MAX 👉@BookPython
7 · 1.2K ·

Рядом в ленте

ББиблиотека Python разработчика | Книги по питонуВсе объекты в Python создаются с помощью вызова метода __new__. Даже если вы определяете свой собственный __new__ для класса, вы должны вызвать super().__new__(ББиблиотека Python разработчика | Книги по питонуСтандартный модуль json имеет интерфейс командной строки, который может быть полезен для форматирования JSON с помощью одного только Python. Этот модуль называе
это сообщение
ББиблиотека Python разработчика | Книги по питонуМодуль functools для манипуляций с функциями Модуль functools в Python предоставляет инструменты для работы с функциями, позволяя выполнять различные манипуляциББиблиотека Python разработчика | Книги по питонуКогда вы пишете собственный метод __repr__ для какого-то объекта, обычно нужно включать представление его атрибутов. Для этого при форматировании следует вызыва
ББиблиотека Python разработчика | Книги по питонуБиблиотека Python разработчика | Книги по питону@BookPython · канал · Технологии
17 954подписчиков552средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем