__str__ позволяет определить, как объект будет представлен в виде строки при использовании функций str() или print(). Определите этот метод в вашем классе и верните строку желаемого формата.
  
class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y
    def __str__(self):
        return f"Точка: ({self.x}, {self.y})"
p = Point(1, 2)
print(p)  # Вывод: Точка: (1, 2)
  Метод `__str__` в Python - это специальный метод, известный также как "магический" или "дандер" метод (от "double underscore"). Он используется для определения строкового представления объекта. Когда вы вызываете функции `print()` или `str()` для вашего объекта, Python автоматически вызывает метод `__str__` этого объекта (если он определен) и использует возвращенное значение для отображения.
Основная цель `__str__` - предоставить удобное, читаемое представление объекта для людей. В отличие от `__repr__`, которое должно предоставлять однозначное представление объекта для отладки (потенциально такое, из которого можно восстановить объект), `__str__` ориентирован на пользователя.
Как использовать `__str__` для настройки форматирования вывода:
Пример:
class Book:
    def __init__(self, title, author, pages):
        self.title = title
        self.author = author
        self.pages = pages
    def __str__(self):
        return f'Книга "{self.title}" автора {self.author}, {self.pages} страниц'
book = Book("1984", "Джордж Оруэлл", 328)
print(book)  # Вывод: Книга "1984" автора Джордж Оруэлл, 328 страниц
str(book) # Вернет строку 'Книга "1984" автора Джордж Оруэлл, 328 страниц'
Разбор примера:
Важные моменты:
В заключение, использование `__str__` позволяет вам полностью контролировать, как ваши объекты отображаются, когда они используются в строковых контекстах, что делает ваш код более читаемым и удобным в использовании.