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 .
0