Я пытаюсь создать объект, содержащий словарь, и когда я печатаю объект, он печатает словарь так же, как при печати словаря в интерактивном режиме.
См. Пример в ipython:
In [1]: class A(object):
...: def __init__(self, d):
...: self.d = d
...:
...: def __repr__(self):
...: return repr(self.d)
In [2]: a = {"aaaaaaaaaaaaaaaaaaaaaaa": 1, "bbbbbbbbbbbbbbbbbbbbbbb": 2, "ccccccccccccccccccccccc": 3}
In [3]: a
Out[3]:
{'aaaaaaaaaaaaaaaaaaaaaaa': 1,
'bbbbbbbbbbbbbbbbbbbbbbb': 2,
'ccccccccccccccccccccccc': 3}
In [4]: A(a)
Out[4]: {'aaaaaaaaaaaaaaaaaaaaaaa': 1, 'bbbbbbbbbbbbbbbbbbbbbbb': 2, 'ccccccccccccccccccccccc': 3}
Я ожидаю, что при печати A(a)
каждый ключ словаря будет записан в отдельной строке, так же, как когда мы просто печатаем a
, но это не так. Как мне это сделать? Я знаю, что могу вручную создать метод для печати словаря, как мне нравится, но мне интересно, есть ли способ сделать это без создания собственного метода печати словаря, чтобы получить вывод, и просто использовать метод, который используется для печати словарь в ipython.
Следовательно, как мне это получить?
In [4]: A(a)
Out[4]:
{'aaaaaaaaaaaaaaaaaaaaaaa': 1,
'bbbbbbbbbbbbbbbbbbbbbbb': 2,
'ccccccccccccccccccccccc': 3}