Capítulo 24. Metaprogramación de clases

Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com

Todo el mundo sabe que depurar es el doble de difícil que escribir un programa en primer lugar. Así que si eres todo lo listo que puedes ser cuando lo escribes, ¿cómo vas a depurarlo nunca?

Brian W. Kernighan y P. J. Plauger, Los elementos del estilo de programación1

Metaprogramación de clases es el arte de crear o personalizar clases en tiempo de ejecución. Las clases son objetos de primera clase en Python, por lo que se puede utilizar una función para crear una nueva clase en cualquier momento, sin utilizar la palabra clave class. Los decoradores de clases también son funciones, pero diseñadas para inspeccionar, cambiar e incluso sustituir la clase decorada por otra clase. Por último, las metaclases son la herramienta más avanzada para la metaprogramación de clases: te permiten crear categorías de clases completamente nuevas con rasgos especiales, como las clases base abstractas que ya hemos visto.

Las metaclases son potentes, pero difíciles de justificar y aún más difíciles de hacer bien. Los decoradores de clases resuelven muchos de los mismos problemas y son más fáciles de entender. Además, Python 3.6 implementóla PEP 487-Personalización más sencilla de la creación de clases, proporcionando métodos especiales que soportan tareas que antes requerían metaclases o decoradores de clases.2

Este capítulo presenta las técnicas ...

Get Python fluido, 2ª edición now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.