【发布时间】:2014-01-17 17:21:37
【问题描述】:
我有自己的DateTime,它是datetime.datetime 的子类:
class DateTime(datetime.datetime):
def __new__(cls, **kwargs):
cls.my_attr = kwargs.pop('my_attr')
return datetime.datetime.__new__(cls, **kwargs)
当我创建一个或多个实例时,每个instance.my_attr 都指向同一个对象,即cls.my_attr:
>>> dt1 = DateTime(**{'year': 2014, 'month': 1, 'day': 17, 'hour': 18, 'minute': 10, 'my_attr': 'dt1'})
>>> dt1.my_attr
'dt1'
>>> dt2 = DateTime(**{'year': 2015, 'month': 2, 'day': 18, 'hour': 19, 'minute': 11, 'my_attr': 'dt2'})
>>> dt1.my_attr
'dt2'
>>> dt2.my_attr
'dt2'
>>> id(dt1.my_attr)
23429768
>>> id(dt2.my_attr)
23429768
>>> id(DateTime.my_attr)
23429768
怎么了?
【问题讨论】:
标签: python datetime inheritance subclass