Я пытаюсь сделать одну из моих библиотек совместимой с Python 2.6. Он использует метод datetime.timedelta.total_seconds
, который был добавлен в 2.7, поэтому, чтобы он работал с 2.6, я хотел, чтобы обезьяна исправила его в timedelta
следующим образом:
import datetime
if not hasattr(datetime.timedelta, 'total_seconds'):
class timedelta(datetime.timedelta):
def total_seconds(self):
return self.days * 86400.0 + self.seconds + self.microseconds * 1e-6
datetime.timedelta = timedelta
В некоторых случаях это действительно работает, например, если я создаю переменную timedelta
, у нее есть этот метод. Но если новый объект timedelta
создается путем вычитания двух значений datetime.datetime
, метод в результирующем объекте отсутствует.
Что не так и как мне это исправить?