¿Para qué está diseñada la declaración python "with"?


Me encontré con la declaración Python with por primera vez hoy. ¡He estado usando Python a la ligera durante varios meses y ni siquiera sabía de su existencia! Dado su estatus algo oscuro, pensé que valdría la pena preguntar:

  1. Qué es la instrucción Python with diseñado para ser utilizado?
  2. ¿Qué hacer utilizas?
  3. ¿Hay alguna tengo que ser consciente de, o anti-patrones comunes asociados con su uso? Cualquier caso en el que es mejor utilizar try..finally que with?
  4. ¿Por qué no se usa más ampliamente?
  5. ¿Qué clases de biblioteca estándar son compatibles con él?

Warning: Undefined property: agent_blog_content::$date_asked in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 32

Warning: Undefined property: agent_blog_content::$count_answers in /var/www/agent_etc/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 52