Рассмотрим следующие 2 подхода:
Ручное закрытие
import psycopg2
conn = psycopg2.connect('dbname=foo')
csor = conn.cursor()
csor.execute(qry)
conn.commit()
csor.close()
conn.close()
С блоком
with psycopg2.connect('dbname=foo') as conn:
with conn.cursor() as csor:
csor.execute(qry)
conn.commit()
У меня вопрос, эти два подхода эквивалентны друг другу? Я обеспокоен тем, что блок with
может уничтожить ссылки на переменные, но оставить соединения открытыми. Я не думаю, что это так, основываясь на некоторых тестах, которые я провел. Тем не менее, было бы здорово, если кто-то с большим опытом в этом поможет подтвердить мое понимание. Спасибо!