У меня есть собственный Python класс, который, по сути, инкапсулирует list
какого-то объекта, и мне интересно, как мне реализовать его __repr__
функцию. У меня есть соблазн использовать go следующим образом:
class MyCollection:
def __init__(self, objects = []):
self._objects = []
self._objects.extend(objects)
def __repr__(self):
return f"MyCollection({self._objects})"
Это дает то преимущество, что дает действительный результат Python, который полностью описывает экземпляр класса. Однако в моем реальном случае список объектов может быть довольно большим, и каждый объект может иметь большое представление (они сами по себе являются массивами).
Каковы лучшие практики в таких ситуациях? Согласны с тем, что repr часто может быть очень длинной строкой? Связаны ли с этим потенциальные проблемы (пользовательский интерфейс отладчика и т. Д. c.)? Должен ли я реализовать какую-то схему сокращения, используя точку с запятой? Если да, то есть ли хороший / стандартный способ добиться этого? Или мне вообще пропустить перечисление содержимого коллекции?