我正在尝试提出SQLiteDB对象,以下是其打开/关闭代码。
这可以正常工作吗?我缺少重要的东西吗?
对于close(),我使用con.close()和cursor.close(),但我想知道是否有必要cursor.close()。
class SQLiteDB(object):
def __init__(self, dbFile, connect = True):
self.dbFile = dbFile
self.con = None
self.cursor = None
if connect:
self.open()
def __del__(self):
if self.con:
self.close()
def open(self):
self.con = sqlite3.connect(self.dbFile)
self.cursor = self.connector.cursor()
return self.con, self.cursor
def close(self):
self.con.close()
self.cursor.close()
self.cursor = None
self.con = None
最佳答案
Cursor.close()会发生什么情况取决于基础数据库的实现。对于SQLite,它可能当前没有关闭就可以工作,但是对于其他实现或将来的SQLite版本,则可能没有,所以我建议关闭Cursor对象。您可以在PEP 249中找到有关Cursor.close()的更多信息。
另外,您的代码中似乎还有一个错字:
self.connector = sqlite3.connect(self.dbFile)
应该是
self.con = sqlite3.connect(self.dbFile)
否则,您的代码对我来说看起来不错。快乐的编码:)。
关于python - SQLite实现的打开/关闭功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3754151/