recarga perezosa

El Lazy Python Reloader
Descargar ahora

recarga perezosa Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • MIT/X Consortium Lic...
  • Nombre del editor:
  • Dave Abrahams
  • Sitio web del editor:
  • http://boostpro.com

recarga perezosa Etiquetas


recarga perezosa Descripción

El perezoso recargador de python La recarga perezosa es el módulo Python que proporciona una manera de controlar lo que sucede cuando se vuelve a cargar. Los módulos se vuelven a cargar en el mismo orden en que serían si se estaban cargados por primera vez, y por las mismas razones, eliminando así la imprevisibilidad asociada con las referencias de módulos circulares. Obsegue: desde Lazy_Reload Importar Lazy_ReloadImport Foo.Bar.BazLazy_Reload ( Foo) de Foo.Bar Import Baz # <= Foo, Bar y BAZ Recargó Heremotivación Los problemas con los módulos de recarga en Python son legion y conocidos. Durante el curso de la ejecución ordinaria, las referencias a objetos en los módulos y a los módulos, terminan distribuidos alrededor del gráfico de objetos de manera que puede ser difícil de administrar y difícil de predecir. Como resultado, es muy común tener un código antiguo que cuelga mucho tiempo después de la recarga, posiblemente haciendo referencia a las cosas que espera haber recargado. Esto no es necesariamente culpa de Python: es solo un problema difícil de resolver bien. Como resultado, la mayoría de las aplicaciones que necesitan actualizar su código encuentran dinámicamente una manera de iniciar un nuevo proceso de Python para ese propósito. Le recomiendo encarecidamente que haga eso si es una opción para usted; Te ahorrarás un montón de dolores de cabeza de depuración a largo plazo. Para el resto de nosotros, hay Lazy_Reload.What's __builtin __. Recargar la función de recargar () La función suministrada por Python es muy simple: hace que el archivo fuente del módulo se interprete en el contexto del objeto del módulo existente. Cualquier atributo del módulo que no esté sobrescrito por esa interpretación permanece en su lugar. Así, por ejemplo, un módulo puede detectar que se está volviendo a cargar de la siguiente manera: Si 'YUEK YUELDADE' EN GLOBALES (): Imprimir 'Estoy siendo Reloaded'already_loaded = Truealso, Python no intenta actualizar las referencias a ese módulo en otro programa. Debido a que la identidad del objeto del módulo no cambia, las referencias directas del módulo seguirán funcionando. Sin embargo, cualquier referencias existentes a funciones o clases definidas dentro de ese módulo todavía apuntará a las definiciones antiguas. Los objetos creados antes de la recarga aún se refieren a clases desactualizadas a través de su atributo __class__, y cualquier nombre local que se haya importado en otros módulos aún se hace referencia a sus de definiciones antiguas. Lo que lazy_reload (foo) (foo) (foo))) elimina foo y Todos sus submódulos de Sys.modules, y organizan que la próxima vez que cualquiera de ellos se importen, se volverán a cargar. Antes de que se recargue automáticamente un módulo, se eliminarán primero los atributos que se eliminen primero los subtódulos directos, para evitar que algunas formas de importación seleccionenlas en lugar de recargar el submodule. Lo que lazy_reload no lo hace, no elimina las referencias a la recarga. Módulo de otros módulos. En particular, después de haber cargado esto: # bar.py importa foo def (): devuelva foo.x- La referencia a foo ya está presente en la barra, por lo que después de Lazy_unload (FOO), una llamada a Bar.F () no será hacer que Foo se vuelva a cargar a pesar de que se usa allí. Por lo tanto, usted es más seguro usando Lazy_Unload en los módulos de nivel superior que no se conocen en otras partes de su programa por nombre.- No causa inmediatamente nada que se vuelva a cargar. Recuerde que la operación de recarga es perezosa, y solo sucede cuando se está importando el módulo.- Tampoco hace que nada sea "descargado", ni hace nada explícito para reclamar la memoria. Si el programa está realizando referencias a funciones y clases, no espere que sean recopilados de basura. (Tenga cuidado con las trazas de fondo; La información de la última excepción recaudada es una forma sutil, las cosas pueden mantenerse con vida más largas de lo que le gustaría) .- No dobla la lavandería ni lave sus gatos. Si no disfruta de estas actividades, considere las muchas alternativas asequibles a las mascotas y la ropa. Requisitos: · Python


recarga perezosa Software relacionado

lazr.enum

Enumeres con soporte de vocabulario de Zope.Schema y comodidades amigables con la base de datos ...

121

Descargar