Я изменяю код Python, который имеет эту форму:
def foo(self):
try:
connect socket
except Exception, e:
some error reporting stuff
return an error
use the socket
do some other stuff
if some condition:
return
do some more stuff
socket.close()
return normally
Исходя из Java, я хотел бы попробовать - наконец-то, чтобы убедиться, что сокет закрыт. Должен ли этот код также иметь это, или это какая-то Питонская магия, происходящая на заднем плане, которая делает его таким, чтобы вам не пришлось?
Я прочитал в документации по питону, что сокеты закрываются, когда они собирают мусор. Но полагаться на сборщик мусора, чтобы закрыть свои розетки, не очень хорошо.