14.7. Revisión de los Puntos

Vamos a reescribir la clase Punto de la Sección 12.1 con un estilo mas orientado a objetos:

   1: class Punto:
   2:     def __init__(self, x=0, y=0):
   3:         self.x = x
   4:         self.y = y
   5:     def __str__(self):
   6:         return '(' + str(self.x) + ', ' + str(self.y) + ')'

 

metodo de inicialización toma los valores de x e y como parámetros opcionales; el valor por omisión de cada parámetro es 0.


El siguiente metodo, __str__ , devuelve una representación en forma de cadena de un objeto Punto. Si una clase ofrece un metodo llamado __str__ , se impone al comportamiento por defecto de la función interna __str__ de Python.




   1: >>> p = Punto(3, 4)
   2: >>> str(p)
   3: '(3, 4)'

Imprimir un objeto Punto invoca implícitamente a __str__ sobre el objeto, así que definir __str__ también cambia el comportamiento de print:




   1: >>> p = Punto(3, 4)
   2: >>> print p
   3: (3, 4)

Cuando escribimos una nueva clase, casi siempre empezamos escribiendo __init__ , que facilita el instanciar objetos, y __str__ , que casi siempre es útil para la depuración.


 


 
0