Adiciones

Extiende dinámicamente otros objetos con complementos (anteriormente objetos)
Descargar ahora

Adiciones Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • ZPL
  • Precio:
  • FREE
  • Nombre del editor:
  • Phillip J. Eby

Adiciones Etiquetas


Adiciones Descripción

Extender dinámicamente otros objetos con complementos (anteriormente objetos) En cualquier aplicación o marco de tamaño suficiente, es común terminar muchas preocupaciones diferentes en la misma clase. Por ejemplo, es posible que tenga código de persistencia, lógica de negocios y UI todo atascado en una sola clase. Sin embargo, los nombres de atributos y métodos para todo tipo de operaciones diferentes se metan en un solo espacio de nombres, incluso cuando se utilizan clases de Mixin. Sin embargo, las preocupaciones de diferentes objetos hacen que sea más fácil escribir componentes reutilizables y por separado. El paquete de los complementos (pico.util.addons) le permite administrar las preocupaciones usando las clases de complementos. Las clases de ADDON son como mezcladas dinámicas, pero con sus propios espacios de atributos y nombres de métodos privados. Se puede agregar una preocupación implementada utilizando los complementos en tiempo de ejecución a cualquier objeto que tenga un atributo grabable __DICT__, o las clases referencias débiles. Las clases también son similares a los adaptadores, pero en lugar de crear una nueva instancia cada vez que solicite uno, Se devuelve una instancia existente si es posible. De esta manera, los complementos pueden realizar un seguimiento del estado en curso. Por ejemplo, un complemento de persistencia podría hacer un seguimiento de si su sujeto se ha guardado en el disco todavía: >>> de Peak.Util.addons Import Addon >>> Persistencia de clase (Addon): ... Guardado = True .. . Def cambió (auto): ... auto.Saved = Falso ... Defave_if_needed (yo): ... si no soy self.saved: ... imprime "guardando" ... self.saved = true >> > COSA DE CLASE: PASS >>> ATHING = Thing () >>> Persistencia (inhing) .SavedTrue >>> Persistencia (inhing). Cambixed () >>> Persistencia (ASHING) .SavedFalse >>> Persistencia (ASHING). Save_if_needed () Guardar >>> Persistencia (inhing) .save_if_needed () # ninguna acción Takenthis lo hace fácil para nosotros, por ejemplo, escribir un bucle que guarda un montón de objetos, porque no necesitamos preocuparnos con la inicialización. El estado del complemento de persistencia. Una clase no necesita heredar de una base especial para poder tener este estado rastreado, y no necesita saber cómo inicializarlo, tampoco. De curso, en el caso de la persistencia, una clase hace Necesidad de saber cuándo llamar a los métodos de persistencia, para indicar el cambio y solicitar el ahorro. Sin embargo, una biblioteca que proporciona un complemento de este tipo también puede proporcionar decoradores y otras herramientas para facilitar esto, mientras que aún permanece en gran parte independientes de los objetos involucrados. Además, la biblioteca de los complementos se creó en realidad para facilitar la implementación de la funcionalidad utilizando la función o Método Decoradores. Por ejemplo, se puede crear un decorador @Synchronizado que bloquee de forma segura un objeto: consulte el ejemplo a continuación en las inquietudes de roscado.En Resumen, la biblioteca de los complementos le proporciona una forma básica de AOP, que le permite adjuntar (o "introducir", en Aspectj Terminology) Atributos y métodos adicionales a un objeto, utilizando un espacio de nombres privado. (Si también desea hacer "consejos" de estilo de Aspectj, el paquete de reglas máximas se puede usar para hacer "antes", "Después", y "Alrededor", consejos en combinación con complementos.) Requisitos: · Python


Adiciones Software relacionado

tránsito

Biblioteca y herramientas de especificaciones de feed de tránsito de Google ...

107

Descargar

ligero

Una biblioteca para referencias lineales en lineamientos, incluidos los cálculos geográficos ...

147

Descargar