Каковы лучшие практики для __repr__ с классом коллекции Python? - PullRequest
0 голосов
/ 14 июля 2020

У меня есть собственный 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.)? Должен ли я реализовать какую-то схему сокращения, используя точку с запятой? Если да, то есть ли хороший / стандартный способ добиться этого? Или мне вообще пропустить перечисление содержимого коллекции?

...