Что если я не закрою соединение с базой данных в Python SQLite
Я делаю что-то вроде этого ...
conn = sqlite3.connect(db_filename)
with conn:
cur = conn.cursor()
cur.execute( ... )
with
автоматически фиксирует изменения. Но документы ничего не говорят о закрытии соединения.
На самом деле я могу использоватьconn
в последующих высказываниях (которые я проверял). Следовательно, кажется, что менеджер контекста НЕ закрывает соединение.
Нужно ли вручную закрывать соединение. Что если я оставлю это открытым?
РЕДАКТИРОВАТЬ
Мои выводы ...
соединение НЕ закрыто в контексте менеджера я проверил и подтвердил это. на__exit__
менеджер контекста ТОЛЬКО фиксирует изменения, выполняяconn.commit()
with conn
а такжеwith sqlite3.connect(db_filename) as conn
находятсяодно и то же, Таким образом, использование любого из них сохранит связьwith
оператор не создает новую область видимости, следовательно, все переменные, созданные внутри пакета, будут доступны вне егоНаконец, вы должны закрыть соединение вручную