Какая разница между методами str и repr

repr отвечает за то как объект будет отображаться внутри нашей системы

str отвечает за то как объект будет отображаться для пользователя. Определяет строковое представление объекта. *str* по умолчанию, возвращает строковое представление адреса памяти объекта.

Цель метода: Предоставить удобочитаемое строковое представление объекта

class User:
    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

    def __str__(self):
        return f"__str__ method: {self.first_name} {self.last_name}"

    def __repr__(self):
        return f"__repr__ method: {self.first_name} {self.last_name}"

user = User("Vasya", "Pypkin")
print(f"{user}")

Oct. 9, 2023, Источник