Con la declaración en Python, se devuelve el objeto Ninguno aunque el método __init__ funcione
Para una clase DB con lo siguienteen eso método:
class DB:
def __init__(self, dbprops):
self.dbprops = dbprops
self.conn = self.get_connection(self.dbprops)
debug("self.conn is %s" %self.conn)
def __enter__(self):
pass
def __exit__(self, exc_type, exc_val, exc_tb):
if not self.conn is None:
self.close()
Y para un método cliente invocándolo de la siguiente manera:
with DB(self.dbprops) as db:
if not db:
raise Exception("Db is None inside with")
return db.get_cmdline_sql()
La salida muestra el mensaje de depuración, por lo tantoen eso método fue llamado con éxito:
File "./classifier_wf.py", line 28, in get_cmdline_mysql
raise Exception("Db is None inside with")
Excepción: Db is None inside con
Actualización: arreglado elentrar Método para devolver un objeto DB. Pero necesito ayuda sobre cómo invocarlo:
def __enter__(self, dbprops):
return DB(dbprops)
Invocarlo con un solo parámetro no funciona aparentemente:
with DB(dbprops) as db:
TypeError: __enter__() takes exactly 2 arguments (1 given)
Ahora no sigo porque se supone que el "yo" se llena automáticamente ...