Да, GC звонит __del__
Очистка крюка генератора, который, в свою очередь, поднимает GeneratorExit
В функции генератора выйти из генератора (позвонив generator.close()
).
Это означает контекст -менеджер __exit__
Крюк будет вызван всякий раз, когда функция генератора очищается по памяти.
Вы можете сначала закрепить генератор самостоятельно, с generator.close()
:
b.close()