У меня есть (в Python 3):перекрывая формат по умолчанию при печати списка объектов DateTime
print('event {} happened on these dates: {}'.format(event_name, date_list))
Мой date_list
список datetime.date
объектов. Я хотел бы изменить формат с:
события А произошло на [datetime.date (2011, 5, 31), datetime.date (2011, 6, 15)]
к
событие А произошло [2011-05-31, 2011-06-15]
Какой самый лучший способ для достижения этой цели? Я надеялся, что смогу продолжать использовать функцию format()
, но я не вижу, как это сделать.
Понял ... это много повторяющихся 'join' называет, хотя. Это хорошая идея для подкласса 'datetime.date' переопределить' __repr__', поэтому он просто называет '__str__'? – max
На самом деле это только один вызов 'join', хотя (возможно) много вызовов' str'. Подклассификация 'datetime.date', поэтому' __repr__' возвращает 'str (self)', но это возможно только в том случае, если вам нравится более простой синтаксис, а не скорость. Фактически, использование подкласса было бы медленнее, так как каждый вызов '__repr__' вызывал бы вызов' str'. Фактически, вы будете делать столько же вызовов 'str', как указано выше, плюс накладные расходы на равное количество вызовов' __repr__'. Во всяком случае, не беспокойтесь о скорости, пока вы не профилировали и не определили основные узкие места. Я сомневаюсь, что он будет здесь. – unutbu
Мне жаль, что я имел в виду «повторяющийся» в смысле написания кода, а не исполнение :) У меня есть много мест, где я печатаю список дат ... Поэтому кажется, что для моих целей это не так уж плохо подкласс. Благодаря! – max