__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__` позволяет вам полностью контролировать, как ваши объекты отображаются, когда они используются в строковых контекстах, что делает ваш код более читаемым и удобным в использовании.