Foros del Web » Programando para Internet » Python »

Métodos especiales

Estas en el tema de Métodos especiales en el foro de Python en Foros del Web. Buenas, a pesar de que leo sobre ello, no consigo entender bien los llamados métodos especiales, bien __init__, __str__, etc, ni cual es su función ...
  #1 (permalink)  
Antiguo 30/06/2011, 08:07
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años, 7 meses
Puntos: 8
Métodos especiales

Buenas, a pesar de que leo sobre ello, no consigo entender bien los llamados métodos especiales, bien __init__, __str__, etc, ni cual es su función en las clases python.

Agradecido a cualquier explicación.

Un saludo
  #2 (permalink)  
Antiguo 30/06/2011, 09:35
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Métodos especiales

__init__ es el constructor de la clase
__str__ es un método que sirve para obtener la representación de tu objeto como string

Ejemplos:
Código:
class Carro:
    def __init__(self, gasolina):
        self.gasolina = gasolina

    def __str__(self):
        return "Tienes %d litros de gasolina" % self.gasolina

carro = Carro(10)
print carro
  #3 (permalink)  
Antiguo 30/06/2011, 10:26
 
Fecha de Ingreso: abril-2011
Mensajes: 83
Antigüedad: 13 años, 7 meses
Puntos: 8
Respuesta: Métodos especiales

Aaaa, es decir, que al pasarle 10, el lo tratará como un string en lugar de como un entero..

Ya entiendo, muchas gracias!
  #4 (permalink)  
Antiguo 30/06/2011, 11:22
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Métodos especiales

No lo tratara como entero.

Simplemente __init__ es un constructor
Y __str__ es la representación del objeto como cadena.

Otro ejemplo:
Código Python:
Ver original
  1. class Carro:
  2.     def __init__(self, gasolina):
  3.         self.gasolina = gasolina
  4.  
  5. carro = Carro()
  6. print carro
¿Ahora vez la diferencia? La clase con el metodo __str__ y sin el metodo __str__

Te recomiendo leer mas sobre programación orientada a objetos para python.

Etiquetas: especiales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.