В Python с sqlite необходимо закрыть курсор?

Вот сценарий. В вашей функции вы выполняете инструкции с помощью курсора, но один из них терпит неудачу и генерируется исключение. Ваша программа выходит из функции перед закрытием курсора, с которым она работала. Будет ли курсор перемещаться вокруг места? Мне нужно закрыть курсор?

Кроме того, в документации Python есть пример использования курсора и сказано: «Мы также можем закрыть курсор, если мы с ним закончим». Ключевое слово «can», а не «must». Что они означают именно этим?

2 Solutions collect form web for “В Python с sqlite необходимо закрыть курсор?”

Вероятно, это хорошая идея (хотя, возможно, это не имеет особого значения для sqlite, не знаю, но это сделает ваш код более портативным). Кроме того, с недавним Python (2.5+), это легко:

from __future__ import with_statement from contextlib import closing with closing(db.cursor()) as cursor: # do some stuff 

Вы не обязаны называть курсор close() ; это может быть сбор мусора, как любой другой объект.

Но даже если ожидание сбора мусора звучит нормально, я думаю, что было бы хорошим стилем, чтобы убедиться, что ресурс, такой как курсор базы данных, закрывается независимо от того, есть ли исключение.

  • Как бороться с ошибками округления плавающих типов для финансовых расчетов в Python SQLite?
  • Сжимает ли sqlite3 данные?
  • Python SQLite: база данных заблокирована
  • Получить список значений полей из sqlite3 Python, а не кортежей, представляющих строки
  • Зашифрованный файл или db в python
  • Возврат запроса DateTimeField Нет в Django
  • Как проверить, существует ли таблица?
  • Python прописывает в sqlalchemy
  •  
    Interesting Posts for Van-Lav

    Логический или оператор не ведет себя как ожидалось

    Избавление от вывода консоли при замораживании программ Python с помощью Pyinstaller

    Как я могу объединить два списка и отсортировать их в «линейном» времени?

    Как я могу захватить кадры iSight с помощью Python в Snow Leopard?

    Python, как эффективно копировать объект, который также позволяет его модифицировать?

    Эффективно кэшировать и восстанавливать параметры оси matplotlib после перемещения шипов

    Webcraping в python: ошибка BS, селена и None

    Проверка подлинности python html

    Существует ли что-то вроде CanCan (библиотека авторизации) для фляжки и python

    Номера позиций легенды matplotlib

    ProcessPoolExecutor от concurrent.futures намного медленнее, чем многопроцессор.

    Как сгенерировать список уникальных случайных чисел в Python

    Сбой при использовании QAbstractTableModel с QTreeView

    Как рассортировать дистрибутив scipy.stats (не может сортировать объекты instancemethod)

    Какая версия python добавила условие else для циклов?

    Python - лучший язык программирования в мире.