Вы не уверены, что юникод против байтов и кодировка против декодирования.
Кодирование преобразует строку (юникод) в байты. Но метод __str__
должен возвращать строку, а не байты. Там не нужно кодировать.
def __str__(self):
return unicode(self)
Однако я не знаю, как это работает, поскольку Python 3 не определяет встроенную unicode
и не распознает __unicode__
метод. Вы должны просто сделать это непосредственно в __str__
:
def __str__(self):
return "{}{:02d}:{:02d}:{:05.2f}".format(
'-' if self.sign == -1 else '', self._deghour, self.minute, self.second)