Методы вывода объекта класса в Python — примеры и объяснение

МетодОписание
__str__()Метод, который возвращает строку, представляющую объект в понятном для людей виде.
__repr__()Метод, который возвращает строку, представляющую объект так, чтобы ее можно было использовать для создания аналогичного объекта.
  • Метод repr(): данный метод возвращает строковое представление объекта, которое может быть использовано для его восстановления. Он вызывается автоматически при использовании функции repr() или встроенной функции str().
  • Метод str(): данный метод возвращает строковое представление объекта, предназначенное для чтения человеком. В отличие от метода repr(), метод str() не позволяет восстановить объект.
  • Метод format(): данный метод позволяет форматировать строку с использованием специальных символов, называемых заполнителями, для вставки значений объекта. Он используется в комбинации с фигурными скобками {} внутри строки.

Один из таких методов - __str__. Он возвращает строковое представление объекта и используется, например, при вызове функции print. Рассмотрим пример:

class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person: {self.name}, {self.age} years old"
person = Person("Alice", 25)
print(person)

Кроме метода __str__, существует также метод __repr__. Этот метод возвращает строку, содержащую код, который можно использовать для создания точной копии объекта. Рассмотрим пример:

class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f"Point({self.x}, {self.y})"
point = Point(3, 4)
print(point)
print(repr(point))

Метод __repr__ возвращает строку "Point(3, 4)". При вызове функции repr с объектом point также возвращается эта строка.

Самыми часто используемыми методами являются __str__ и __repr__. Оба метода позволяют получить строковое представление объекта, но с некоторыми отличиями.

МетодСинтаксисОписание
__str__def __str__(self):Возвращает строку, представляющую объект в удобочитаемом формате для человека. Этот метод используется, когда объект передается функции print() или преобразуется в строку с помощью функции str().
__repr__def __repr__(self):

Важно отметить, что метод __repr__ должен возвращать строку, которая может быть исполнена в Python-коде, чтобы создать точную копию объекта. В противном случае, если объект будет передан в функцию eval(), возможны непредсказуемые ошибки.

Метод __str__ отвечает за строковое представление объекта. Обычно он возвращает наглядное и понятное описание объекта. Это может быть, например, название, атрибуты или другая информация, которая помогает понять, что это за объект.

Метод __repr__ также отвечает за представление объекта в текстовом формате. Однако его задача заключается в том, чтобы возвращать форматированную строку, которая может использоваться для создания точной копии объекта. Это полезно, когда нужно сохранить состояние объекта или передать его в другую программу.

Эти методы могут быть определены в пользовательском классе, и тогда они будут автоматически вызываться при необходимости вывести объект. Если же методы не были определены, Python использует методы по умолчанию, которые просто возвращают обращение к экземпляру класса.

Метод __str__

Метод __str__ определяет, как объект класса будет выглядеть в виде строки при использовании функции str() или при преобразовании объекта в строку с помощью операции str(object). Для этого метод должен вернуть строковое представление объекта.

class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
person = Person("John Smith")
print(str(person))  # Output: Person: John Smith

Метод __repr__

Метод __repr__ определяет, как объект класса будет выглядеть при использовании функции repr() или при преобразовании объекта в строку с помощью операции repr(object). В отличие от метода __str__, метод __repr__ должен вернуть строку, которую можно использовать для создания точно такого же объекта. Обычно возвращается строка с выражением, таким как ClassName(arg1, arg2, ...).

class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f"Point({self.x}, {self.y})"
point = Point(3, 4)
print(repr(point))  # Output: Point(3, 4)
Оцените статью
Добавить комментарий