Python: как создать собственное строковое представление для объекта класса

Чтобы создать собственное строковое представление для объекта класса в Python, вы можете переопределить методы __str__()или __repr__()класса. Эти методы позволяют вам определить, как объект должен быть представлен в виде строки при использовании встроенных функций str()или repr()соответственно или когда объект распечатано.

Вот пример реализации пользовательского строкового представления с помощью метода __str__():

class MyClass:
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return f"MyClass(value={self.value})"
obj = MyClass(42)
print(obj)  # Output: MyClass(value=42)

В этом примере метод __str__()переопределяется и возвращает строковое представление объекта в нужном формате.

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

Вот пример использования метода __repr__():

class MyClass:
    def __init__(self, value):
        self.value = value
    def __repr__(self):
        return f"MyClass(value={self.value})"
obj = MyClass(42)
print(repr(obj))  # Output: MyClass(value=42)

Оба метода __str__()и __repr__()могут быть реализованы в классе, но они служат разным целям. __str__()предназначен для предоставления удобного строкового представления, а __repr__()используется для создания однозначного представления объекта.

(), repr ()