[Python-es] Explicacion sobre with

Yeiniel Suárez Sosa yeiniel en uclv.cu
Jue Jun 5 18:19:43 CEST 2014


La palabra reservada with permite definir un contexto en el cual 
realizar un determinado grupo de operaciones. Por ejemplo una 
transaccion es un caso de uso de la palabra reservada with. Normalmente 
lo que hace es que al alcanzar el control de ejecución el punto donde se 
encuentra la sentencia with se invoca la funcion __enter__ del argumento 
y al terminar el bloque automáticamente se invoca la función __exit__ 
del mismo objeto. En el ejemplo específico que nos envías no es posible 
determinar que hace with porque no se emplea el valor de retorno de 
settings() ni se sabe que hace. El codigo de esta función podria ser de 
ayuda.

Atentamente
Ing. Yeiniel Suárez Sosa
Profesor Instructor, Dep. Automática
FIE, UCLV

On 2014-06-05 11:30, Nicolas lino wrote:
> Buenas gente:
>
> Estoy retomando un proyecto en mi empresa (en el cual no aporte ni
> una linea) escrito en python, utiliza la libreria fabric. En si el
> proyecto es para hacer deploy's en produccion.
>
> Mi problema es que no estoy entendiendo a fondo para que hacen uso
> del with Les copio un metodo.
>
> Desde ya, agradesco las explicaciones que me puedan dar.
>
> def rollback(self, tag, environment):
>         """
>          Apunta el current de un producto a una versión en particular
>         """
>         env.tag = tag
>         env.tagPath = '%s/%s' % (env.releasesPath, tag)
>         _WITH SETTINGS():_
>              self.config(environment)
>             execute(self.set_current_link,tag,role='webservers')
>             if env.flushMemcached:
>                 execute(memcached_flush)
>             execute(varnish_flush,env.dominio)
>              self.after_deploy()
>
> Saludos!
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/

-- 
Ing. Yeiniel Suárez Sosa
Profesor Instructor, Dep. Automática
FIE, UCLV


Más información sobre la lista de distribución Python-es