Я следующий код:Почему результат подкласса datetime минус timedelta для объекта datetime?
from datetime import datetime, timedelta
class MyDate(datetime):
pass
d = MyDate.now()
t = timedelta(1, 1, 1)
print type(d)
print type(d - t)
Выход следующий:
<class '__main__.MyDate'>
<type 'datetime.datetime'>
Так что теперь на мой вопрос, почему подкласс минус timedelta
результат в супер классе?
Кроме того, есть обходное решение для этого, где мне не нужно инкапсулировать объект datetime
и перенаправить все методы datetime
?
Я делаю следующее 'class Date (datetime.datetime, JSONSerialize)', поэтому у меня есть интерфейс для сериализации JSON и, кроме того, я хочу использовать pytz для работы с часовыми поясами. Но pytz использует timedelta для исправления временной метки, а затем я теряю свой интерфейс, когда я конвертирую из одной TZ в другую. Поэтому я искал решение, в котором мне не нужно писать 10 методов-оболочек для datetime. –
Я не вижу способ обернуть хотя бы '__add__' и' __sub__', если вы хотите манипулировать вашим подклассом с помощью объектов timedelta' – jonrsharpe