Capítulo 23. Descriptores de atributos
Este trabajo se ha traducido utilizando IA. Agradecemos tus opiniones y comentarios: translation-feedback@oreilly.com
Aprender sobre descriptores no sólo proporciona acceso a un conjunto de herramientas más amplio, sino que crea una comprensión más profunda de cómo funciona Python y una apreciación de la elegancia de su diseño.
Raymond Hettinger, desarrollador y gurú del núcleo de Python1
Descriptores son una forma de reutilizar la misma lógica de acceso en múltiples atributos. Por ejemplo, los tipos de campo en los ORM, como el ORM de Django y SQLAlchemy, son descriptores, que gestionan el flujo de datos desde los campos de un registro de base de datos a los atributos de objetos Python y viceversa.
Un descriptor es una clase que implementa un protocolo dinámico formado por los métodos __get__, __set__ y __delete__. La clase property implementa el protocolo completo del descriptor. Como es habitual con los protocolos dinámicos, las implementaciones parciales están bien. De hecho, la mayoría de los descriptores que vemos en el código real sólo implementan __get__ y __set__, y muchos sólo implementan uno de estos métodos.
Los descriptores son una característica distintiva de Python, desplegados no sólo a nivel de aplicación, sino también en la infraestructura del lenguaje. Las funciones definidas por el usuario son descriptores. Veremos cómo el protocolo de descriptores permite que los métodos funcionen como métodos vinculados o no vinculados, ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access