__str__ en Python

Hola a todos, hoy os voy a explicar como usar la función __str__ de python en POO.

En POO, es normal tener una función dedicada a mostrar la información del usuario.

En python, tenemos una función especial, llamada __str__ que devuelve una cadena con el estado del objeto al imprimir un objeto.

Si un objeto se imprime y no tiene esa función, devolverá la referencia en memoria.

Os dejo un ejemplo:


class Vehiculo:

    def __init__(self, matricula, marca, modelo):
        self.matricula = matricula
        self.marca = marca
        self.modelo = modelo

    @property
    def matricula(self):
        return self.__matricula

    @matricula.setter
    def matricula(self, value):
        self.__matricula = value

    @property
    def marca(self):
        return self.__marca

    @marca.setter
    def marca(self, value):
        self.__marca = value

    @property
    def modelo(self):
        return self.__modelo

    @modelo.setter
    def modelo(self, value):
        self.__modelo = value

    def arrancar(self):
        print("Arrancando el vehiculo...")

    def __str__(self):
        return 'Matricula: '+self.matricula+', Marca: '+self.marca+', modelo: '+self.modelo

Si ahora hago un print a una instancia de Vehiculo, me mostrara su información:


v = Vehiculo("1111AAAA", "SEAT", "IBIZA")

print(v)

Este es el resultado:

Y este seria sino tuviera la función __str__

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Compartir

Deja una respuesta

Tu dirección de correo electrónico no será publicada.