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.
Comentarios
Publicar un comentario