Saltar al contenido

Programación orientada a aspectos (AOP) en Python

Solución:

Python no necesita algo como una “extensión de lenguaje” para poder trabajar de forma orientada a aspectos.

Eso se debe simplemente a los mecanismos dinámicos de Python. Una búsqueda en Google producirá un par de proyectos, pero a pesar de parecer simplemente bibliotecas, es todo lo que se necesita en Python.

No me lo estoy inventando, es el hecho de que puede introspectar clases y métodos, y cambiarlos en tiempo de ejecución. Cuando aprendí por primera vez sobre Orientación de aspectos, pude implementar algunas pruebas de conceptos en Python en un par de horas; ciertamente, algunos de los proyectos existentes pueden ofrecer entradas con calidad de producción.

Pero como preguntaste, hay una especie de “extensión de lenguaje” de Python que podría usarse para Orientación de aspecto: cuando hice la prueba de concepto que mencioné anteriormente, solía verificar los parámetros de entrada de los métodos en tiempo de ejecución para determinar si ciertos métodos se verían afectados por una regla o no.

En Python 3 hay una característica poco conocida del lenguaje que permite anotar los parámetros de entrada y el valor de retorno de una función o método. Una biblioteca de orientación de aspecto podría hacer uso de esto para aplicar su magia en el “tiempo de carga”, y no en el momento de cada llamada de función.

Por cierto, aquí está mi truco rápido para obtener un ejemplo práctico del uso de Orientación de aspecto con Pure Python. Lo siento, los comentarios del código están en pt_BR – https://bitbucket.org/jsbueno/metapython/src/f48d6bd388fd/aspect.py

Puedes usar Spring Python

Enlace: http://docs.spring.io/spring-python/1.2.x/sphinx/html/aop.html#aspect-oriented-programming

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *