Рекомендуется закрывать используемые вами ресурсы.
Обычно при сборе мусора все закрывается.Но это деталь реализации, когда вызывается __del__()
.В CPython у вас есть подсчет ссылок, и объекты отбрасываются, как только они больше не используются.Другие реализации, такие как Jython и т. Д., Могут работать по-разному.
Реализация может отложить сборку мусора или вообще пропустить ее - вопрос качества реализации, как сборка мусора, реализуется, если нет объектовсобраны, которые все еще доступны.
В 2.5 или 2.6 были введены менеджеры контекста, чтобы справиться именно с такими проблемами.С тех пор считается, что стиль goot работает с файлами следующим образом:
with open(...) as f:
# do stuff with file object f
# now it is automatically closed.
Я не знаю zeromq, но, возможно, он также поддерживает менеджеры контекста.
Лично я неаккуратен, если я работаю однострочно через командную строку, но, как правило, достаточно строг в законченных программах.Лучше быть явным, чем неявным.