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.

 

 
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s