Crear un nuevo tipo de datos en Python
Los lenguajes de programación orientados a objetos permiten a los programadores crear nuevos tipos de datos que se comporten de manera muy parecida a los tipos de datos nativos. Exploraremos esta posibilidad construyendo una clase Fracción que funcione de manera muy similar a los tipos numéricos nativos, enteros, enteros largos y flotantes.
Las fracciones, también conocidas como números racionales, son valores que pueden expresarse como la proporción entre dos números enteros, tal como 5=6.
Al numero superior se se le llama numerador y al inferior se se le llama denominador.
Comenzamos definiendo la clase Fracción con un método de inicialización que nos surta de un numerador y un denominador enteros:
1: class Fracción:
2: def __init__(self, numerador, denominador=1):
3: self.numerador = numerador
4: self.denominador = denominador
El denominador es opcional. Una Fracción con un solo parámetro representa un numero entero. Si el numerador es n, construimos la fracción n=1.
El siguiente paso es escribir un método str para que imprima las fracciones de forma que tenga sentido. La forma natural de hacerlo es \numerador/denominador":
1: class Fracción:
2: ...
3: def __str__(self):
4: return "%d/%d" % (self.numerador, self.denominador)
Para probar lo que tenemos hasta ahora, lo ponemos en un ¯chero llamado Fracción.py y lo importamos desde el interprete de Python. Entonces creamos un objeto fracción y lo imprimimos.
>;>> from Fracción import fracción
>;>> mortadela = Fracción(5,6)
>;>> print "La fracción es", mortadela
La fracción es 5/6
Como siempre, la función print invoca implícitamente al método str .
Comentarios
Publicar un comentario