使用 SQLAlchemy 连接到 MySQL,我已经厌倦了写这样的东西:
with closing(engine) as connection:
do_sql_stuff(connection)
这种模式在我的代码的许多区域中重复出现,并且似乎__del__
没有必要这样做。为什么不只实现一个类来包装连接的创建和关闭:
class MyConnectionManager(object):
def __init__(self, db_uri):
self.__db_engine = sqlalchemy.create_engine(db_uri)
self.__db_conn = self.__db_engine.connect()
def __del__(self):
self.__db_conn.close()
这仅仅是两种不同的风格/偏好,还是有更重要的原因表明使用with closing()
是一种更好的使用方式__del__
(反之亦然)?