开发者

The open/close function of SQLite implementation

开发者 https://www.devze.com 2023-01-17 01:47 出处:网络
I\'m trying to come up with SQLiteDB object, and following is the open/close code for it. Does this work without problem? Am I missing something important?

I'm trying to come up with SQLiteDB object, and following is the open/close code for it. Does this work without problem? Am I missing something important?

For close(), I use con.close() and cursor.close(), but I'm wondering if cursor.close() is necessary.

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


What happens on Cursor.close() depends on the underlying database implementation. For SQLite it might currently work without closing, but for other implementations or a future SQLite version it might not, so I would recommend to close the Cursor object. You can find further information on Cursor.close() in PEP 249.

Also, there seems to be a typo in your code:

self.connector = sqlite3.connect(self.dbFile)

should probably be

self.con = sqlite3.connect(self.dbFile)

Otherwise your code looks fine to me. Happy coding :) .

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号