@WebDeveloper2016

Как получить строковое представление объекта?

У меня есть класс. Я хочу чтобы его строковое представление возвращало строку в которой были перечислены все его публичные свойства через перенос строки '\n'. Знаю что надо перегружать __str__ просто пока никак не придумаю алгоритм реализации. Помогите пожалуйста. Например:
class Foo:
	a = 123
	b = 'ololo'
	
	def __str__(self):
		return 'a : ' + a + '\nb : ' + b

Что то эдакое, только автоматизировано.
  • Вопрос задан
  • 442 просмотра
Решения вопроса 1
igor_shevchenko
@igor_shevchenko
Веб-разработчик
class Foo:
    def __init__(self, a, b):
        self.a = a
        self.b = b
        
    def __str__(self):
        return '\n'.join('%s : %s' % item for item in vars(self).items())


Используется так:
>>> print Foo(123, 'ololo')
a : 123
b : ololo
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Модуль pprint, не?
Ответ написан
Комментировать
@Themezv
Js developer (React.js)
Использовать dir. В нем выбрать элементы не начинающиеся с '_'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы