Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpMgTS 87 of 174 menu
◀ ▶

Метод __str__ в ООП в Python

Первый специальный метод, который мы изучим, называется __str__. Он вызывается при попытке получить строковое представление объекта. Давайте разберемся, что это значит. Пусть у нас дан вот такой класс User:

class User: def __init__(self, name, age): self.__name = name self.__age = age def get_name(self): return self.__name def get_age(self): return self.__age

Давайте создадим объект этого класса:

user = User('john', 25)

А теперь попытаемся вывести созданный объект через print:

user = User('john', 25) print(user)

Попытка сделать вывод объекта через print и есть преобразование к строке. В данном случае Python покажет служебный текст с адресом объекта в памяти.

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

Если в коде нашего класса сделать такой метод, то результат этого метода (то есть то, что он вернет через return) и будет строковым представлением объекта.

Пусть мы хотим, чтобы при попытке вывести объект через print, выводилось имя юзера. Значит сделаем метод __str__ и вернем в нем значение свойства name:

class User: def __init__(self, name, age): self.__name = name self.__age = age # Реализуем указанный метод: def __str__(self): return self.__name def get_name(self): return self.__name def get_age(self): return self.__age

Проверим:

user = User('john', 25) print(user) # выведет 'john' - все работает!

Сделайте класс User, в котором будут свойства name и surn. Сделайте так, чтобы при выводе объекта через print на экран выводилась строка с именем и фамилий пользователя.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить