Bienvenidos sean a este post, hoy hablaremos sobre un tema particular.
Es particular porque no solamente se agrego en la version 3.7 sino que se los describe como «tuples de nombres mutables con valores predeterminados», para entender este concepto vamos a crear el siguiente ejemplo pero primero importemos la siguiente clase:
>>> from dataclasses import dataclass
Esto nos permitira utilizar al decorador llamado dataclass, nuestro siguiente paso sera crear una clase para aplicar, veamos su codigo:
>>> @dataclass
... class Cuerpo:
... nombre: str
... masa: float = 0.
... velocidad: float = 1.
... def energia_cinetica(self) -> float:
... return (self.masa * self.velocidad ** 2) / 2
...
>>>
Primero usaremos el decorador que importamos anteriormente, luego comenzaremos con la clase a la cual llamaremos Cuerpo, la cual representara a un cuerpo fisico, este constara de tres datos:
- nombre, sera de tipo de string y representara al nombre del cuerpo
- masa, sera de tipo float (flotante) y representara la masa del cuerpo
- velocidad, tambien de tipo float y representara de la velocidad del cuerpo
Salvo en el primer caso para los dos restantes tendran un valor predeterminado en el caso de no informarlo, lo siguiente es una funcion que calculara la energia cinetica entre los dos valores informados para la masa y el cuerpo, si se preguntan por la expresion despues del self es una posibilidad que nos brinda python3 para adjuntar un metadato a esta funcion para indicar cual es el tipo de valor que devuelve la funcion, lo siguiente es el calculo que usamos para obtener la energia cinetica, vamos a ponerlo en practica de la siguiente forma pero primero crearemos el objeto nuevo:
>>> cuerpo = Cuerpo('Pelota',19, 3.1415)
Con nuestro objeto creado vamos a ver cual es la energia cinetica de este objeto mediante las siguiente linea:
>>> print(cuerpo.energia_cinetica())
93.755711375
>>>
Como podemos ver nos devolvio el valor obtenido de la ecuacion provisto en el codigo, por ultimo vamos a ver los valores que ingresamos en nuestro cuerpo:
>>> print(cuerpo)
Cuerpo(nombre='Pelota', masa=19, velocidad=3.1415)
>>>
Como pueden ver funciono correctamente pero tuvimos una particularidad trabajando de esta forma, es que no fue necesario un __init__ para iniciar a nuestras variables de la clase, esta es otra forma practica de como manejar las variables o propiedades de nuestras clases.
En resumen, hoy hemos visto que son las clases de datos (dataclass), como se implementan, como trabajan en nuestra clase, cuales son los beneficios que nos proveen y como nos pueden facilitar algunas tareas, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.


Donación
Es para mantenimento del sitio, gracias!
$1.50
