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()
これは単に2つの異なるスタイル/設定ですか、それとも使用する方が良い方法であるというより重要な理由があります__del__
か(またはその逆)?