"""
Вы хотите изменить строки, которые выдаются при выводе или просмотре экземпляров,
на что-то более понятное.

Чтобы изменить строковое представление экземпляра, определите методы __str__
() и __repr__(). Например:
"""

class Pair:

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

    def __repr__(self):
        return 'Pair({0.x!s}, {0.y!r})'.format(self)

    def __str__(self):
        return '({0.x!s}, {0.y!s})'.format(self)

"""
Метод __repr__() возвращает кодовое представление экземпляра, и обычно это
текст, который нужно ввести, чтобы воссоздать объект. При проверке значений
встроенная функция repr() возвращает этот текст (равно как и интерактивный се-
анс интерпретатора). Метод __str__() преобразует экземпляр в строку, что и будет
выводом функций str() и print(). Например:
"""

p = Pair(3, 4)

print(repr(p))

print(p)

"""
Реализация этого рецепта также показывает, как различные строковые пред-
ставления могут быть использованы при форматировании. Конкретнее, специ-
альный код форматирования !r показывает, что вывод __repr__() должен быть ис-
пользован вместо вызываемого по умолчанию __str__(). Вы можете попробовать
это показанным выше классом:
"""

p = Pair(3, 4)

print('p is {0!r}'.format(p))
print('p is {0}'.format(p))


"""
Применение в решении format() может показаться немного странным, но код
форматирования {0.x} определяет атрибут x аргумента 0. Так, в следующей функ-
ции 0 – это аргумент self экземпляра:
def __repr__(self):
return 'Pair({0.x!r}, {0.y!r})'.format(self)
В качестве альтернативы этой реализации вы можете также использовать опе-
ратор % и такой код:
def __repr__(self):
return 'Pair(%r, %r)' % (self.x, self.y)
"""
451f6f0e39ce739d03a4ab4c6a8c641d51197e1a
<mask token>


class Pair:
    <mask token>

    def __repr__(self):
        return 'Pair({0.x!s}, {0.y!r})'.format(self)

    def __str__(self):
        return '({0.x!s}, {0.y!s})'.format(self)


<mask token>

<mask token>


class Pair:

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

    def __repr__(self):
        return 'Pair({0.x!s}, {0.y!r})'.format(self)

    def __str__(self):
        return '({0.x!s}, {0.y!s})'.format(self)


<mask token>

<mask token>


class Pair:

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

    def __repr__(self):
        return 'Pair({0.x!s}, {0.y!r})'.format(self)

    def __str__(self):
        return '({0.x!s}, {0.y!s})'.format(self)


<mask token>
print(repr(p))
print(p)
<mask token>
print('p is {0!r}'.format(p))
print('p is {0}'.format(p))
<mask token>

<mask token>


class Pair:

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

    def __repr__(self):
        return 'Pair({0.x!s}, {0.y!r})'.format(self)

    def __str__(self):
        return '({0.x!s}, {0.y!s})'.format(self)


<mask token>
p = Pair(3, 4)
print(repr(p))
print(p)
<mask token>
p = Pair(3, 4)
print('p is {0!r}'.format(p))
print('p is {0}'.format(p))
<mask token>

"""
Вы хотите изменить строки, которые выдаются при выводе или просмотре экземпляров,
на что-то более понятное.

Чтобы изменить строковое представление экземпляра, определите методы __str__
() и __repr__(). Например:
"""

class Pair:

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

    def __repr__(self):
        return 'Pair({0.x!s}, {0.y!r})'.format(self)

    def __str__(self):
        return '({0.x!s}, {0.y!s})'.format(self)

"""
Метод __repr__() возвращает кодовое представление экземпляра, и обычно это
текст, который нужно ввести, чтобы воссоздать объект. При проверке значений
встроенная функция repr() возвращает этот текст (равно как и интерактивный се-
анс интерпретатора). Метод __str__() преобразует экземпляр в строку, что и будет
выводом функций str() и print(). Например:
"""

p = Pair(3, 4)

print(repr(p))

print(p)

"""
Реализация этого рецепта также показывает, как различные строковые пред-
ставления могут быть использованы при форматировании. Конкретнее, специ-
альный код форматирования !r показывает, что вывод __repr__() должен быть ис-
пользован вместо вызываемого по умолчанию __str__(). Вы можете попробовать
это показанным выше классом:
"""

p = Pair(3, 4)

print('p is {0!r}'.format(p))
print('p is {0}'.format(p))


"""
Применение в решении format() может показаться немного странным, но код
форматирования {0.x} определяет атрибут x аргумента 0. Так, в следующей функ-
ции 0 – это аргумент self экземпляра:
def __repr__(self):
return 'Pair({0.x!r}, {0.y!r})'.format(self)
В качестве альтернативы этой реализации вы можете также использовать опе-
ратор % и такой код:
def __repr__(self):
return 'Pair(%r, %r)' % (self.x, self.y)
"""