__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. Los campos obligatorios están marcados con *