Capítulo 22. Atributos y propiedades dinámicos

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

La importancia crucial de las propiedades es que su existencia hace que sea perfectamente seguro y, de hecho, aconsejable que expongas atributos de datos públicos como parte de la interfaz pública de tu clase.

Martelli, Ravenscroft y Holden, "Por qué son importantes las propiedades"1

Los atributos de datos y los métodos se conocen colectivamente como atributos en Python. Un método es un atributo invocable.Los atributos dinámicos presentan la misma interfaz que los atributos de datos -es decir, obj.attr-, pero se calculan bajo demanda. Esto sigue el Principio de Acceso Uniforme de Bertrand Meyer:

Todos los servicios ofrecidos por un módulo deben estar disponibles mediante una notación uniforme, que no distinga si se implementan mediante almacenamiento o mediante cálculo.2

Hay varias formas de implementar atributos dinámicos en Python. Este capítulo cubre las formas más sencillas: el decorador @property y el método especial __getattr__.

Una clase definida por el usuario que implemente __getattr__ puede implementar una variación de atributos dinámicos que yo llamo atributos virtuales: atributos que no se declaran explícitamente en ninguna parte del código fuente de la clase, y que no están presentes en la instancia __dict__, pero que pueden recuperarse en otra parte o calcularse sobre la marcha cada vez que un usuario ...

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.