Como mencioné en mi publicación anterior, he estado trabajando en un mecanismo de bloqueo para una clase en Python y, buenas noticias, las pruebas iniciales pensadas para validar la sintaxis ahora pasan todos los tests. A continuación, un resumen en español de los resultados obtenidos al usar las clases UniversalObject y LocalObject.
UniversalObject: en la creación de diccionarios en modo normal se generan claves name y age y se puede acceder por índice obteniendo el valor John. En modo constante, las claves se mantienen pero los accesos devuelven tuplas de un elemento, por ejemplo el nombre como tupla John. En listas, en modo normal aparecen claves arg_0, arg_1 y arg_2 y el acceso por índice funciona como en un contenedor nativo. En modo constante, las claves se renombran como const_0, const_1 y const_2 y el acceso devuelve tuplas de un elemento. Para valores individuales, en modo normal se indexa como arg_0 y en modo constante el acceso devuelve una tupla como hello. También se demostró el comportamiento de mostrar el padre con show_parent True, devolviendo el contenedor con su contenido.
LocalObject: al crear diccionarios, listas o valores individuales, el objeto aparece como LocalObject:locked y se mantiene un índice de claves similar al de UniversalObject. En modo constante, las lecturas por índice devuelven tuplas de un solo elemento, por ejemplo name como tupla Jane. Se comprobó además la protección de constantes, donde los valores constantes se almacenan como tuplas de un elemento, a la vez que la verificación con type devuelve el tipo real del valor almacenado, como int, en lugar de un tipo de tupla. En la demostración de bloqueo, se creó un LocalObject bloqueado y, tras el proceso de desbloqueo, el estado informado fue l7.locked True.
Más allá de estandarizar la nomenclatura, ahora hay soporte real para constantes y variables, y todas las operaciones lógicas y matemáticas funcionan como si fueran contenedores nativos en lugar de objetos de clase. Además, la clase mantiene un índice tipo diccionario con todos los valores entregados para acceso rápido mediante la propiedad arg_index.
Con esto, el paso 1 está completado. El siguiente objetivo es construir un sistema de multilock basado en condiciones, aprovechando que ya puedo realizar comprobaciones booleanas normales con los objetos. La comprobación con type en constantes que retorna el tipo real del dato almacenado, en lugar de una tupla, es sencillamente una delicia.
Si te interesa mi viaje con Magic Python, cuéntame en los comentarios qué te gustaría ver implementado en el futuro repositorio público.
Sobre Q2BSTUDIO: somos una empresa de desarrollo de software enfocada en crear aplicaciones a medida y software a medida con estándares de calidad enterprise. Nuestro equipo también es especialista en inteligencia artificial, ia para empresas, agentes IA, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, además de automatización de procesos de punta a punta.
Si tu organización necesita un partner para crear o escalar productos digitales, descubre cómo abordamos proyectos de aplicaciones a medida en nuestra página de desarrollo de aplicaciones y software multiplataforma. Y si buscas optimizar flujos y reducir tiempos operativos, consulta nuestras soluciones de automatización de procesos.
Trabajamos con enfoque data driven y seguridad integral, integrando inteligencia artificial, ciberseguridad avanzada, servicios cloud aws y azure, así como analítica con power bi e iniciativas de servicios inteligencia de negocio, para que tu compañía convierta la tecnología en una ventaja competitiva sostenible.