我将sqlite3数据库包装在Python上下文管理器类中,但想知道用 exit 方法错误处理/关闭数据库的正确方法是什么?
我添加了一个测试以查看self.conn是否为true,并在 exit ()方法中添加了commit(),但这是必要的还是好的做法?我不确定在其中一种方法出错的情况下进行提交是否是个好主意?
class TweetedDB():
def __init__(self, db_filename='tweeted.db'):
self.db_filename = db_filename
def __enter__(self):
''' Run when called as context manager. '''
self._connect()
self._create_table()
return self
def __exit__(self, exception_type, exception_value, traceback):
if self.conn:
self.conn.commit()
self.conn.close()