Sobes.tech
Middle
54

Mi a különbség a repr és a str metódus között Pythonban?

Cégeket kérdeztek
RadLab

Válasz az MI-től

sobes.tech MI

Методы __repr__ и __str__ в Python служат для получения строкового представления объекта, но с разными целями:

  • __repr__ предназначен для получения официального строкового представления объекта, которое должно быть максимально информативным и, по возможности, таким, чтобы его можно было использовать для воссоздания объекта (например, в интерактивной консоли). Если это невозможно, возвращается строка с полезной информацией.

  • __str__ предназначен для получения удобочитаемого, понятного пользователю представления объекта, которое используется функцией print() и функцией str().

Если __str__ не определён, Python использует __repr__ как запасной вариант.

Пример:

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return f"Point({self.x}, {self.y})"

    def __str__(self):
        return f"({self.x}, {self.y})"

p = Point(1, 2)
print(repr(p))  # Выведет: Point(1, 2)
print(str(p))   # Выведет: (1, 2)

Таким образом, repr ориентирован на разработчиков и отладку, а str — на конечных пользователей.