Метод __repr__ в ООП в Python
Кроме метода __str__ в Python есть
специальный метод __repr__. Он задает
строку для отладки: по ней видно тип объекта
и его данные. Давайте разберемся, что
это значит. Пусть у нас дан вот такой класс
User:
class User:
def __init__(self, name, age):
self.__name = name
self.__age = age
Давайте создадим объект этого класса:
user = User('john', 25)
А теперь попытаемся вывести созданный объект
через print:
user = User('john', 25)
print(user)
Без своего метода __str__ функция
print берет результат метода
__repr__. Сейчас это служебный текст
с адресом объекта в памяти.
Чтобы текст был полезным для отладки,
сделаем метод __repr__ и вернем
из него строку с данными объекта:
class User:
def __init__(self, name, age):
self.__name = name
self.__age = age
def __repr__(self):
return "User('" + self.__name + "', " + str(self.__age) + ")"
Проверим:
user = User('john', 25)
print(user) # выведет User('john', 25)
Сделайте класс Employee с именем
и зарплатой. Реализуйте метод
__repr__ так, чтобы при выводе
объекта через print были видны
оба значения.