Как говорит @Peter, открытые URL за пределами области действия будут иметь право на сборку мусора.
Однако также обратите внимание, что urllib.py
определяет:
def __del__(self):
self.close()
Это означает, что когда счетчик ссылок для этого экземпляра достигнет нуля , будет вызван его метод __del__
, и, следовательно, будет вызван его метод close
. Самый «нормальный» способ для подсчета ссылок достигнуть нуля - просто позволить экземпляру выйти из области видимости, но ничто не помешает вам строго от del x
на ранней стадии (однако это не вызывает непосредственно __del__
, а просто уменьшает счетчик ссылок на единицу).
Конечно, это хороший способ явно закрыть ваши ресурсы - особенно, когда ваше приложение рискует использовать слишком много указанных ресурсов - но Python автоматически автоматически очистит вас, если вы этого не сделаете что-нибудь смешное, например, сохранение (круговые?) ссылок на экземпляры, которые вам больше не нужны.