Con PEP 557 , las clases de datos se introducen en la biblioteca estándar de Python.
Hacen uso del decorador @dataclass y se supone que son "tuplas con nombre mutables con valor predeterminado", pero no estoy seguro de entender lo que esto significa realmente y en qué se diferencian de las clases comunes.
¿Qué son exactamente las clases de datos de Python y cuándo es mejor usarlas?
De la especificación PEP :
Se proporciona un decorador de clase que inspecciona una definición de clase para variables con anotaciones de tipo como se define en PEP 526, "Sintaxis para anotaciones de variables". En este documento, dichas variables se denominan campos. Con estos campos, el decorador agrega definiciones de métodos generados a la clase para admitir la inicialización de instancias, una repetición, métodos de comparación y, opcionalmente, otros métodos, como se describe en la sección Especificación. Tal clase se llama clase de datos, pero realmente no hay nada especial en la clase: el decorador agrega métodos generados a la clase y devuelve la misma clase que se le dio.
El generador @dataclass agrega métodos a la clase que, de lo contrario, definiría como __repr__ , __init__ , __lt__ y __gt__ .