我对OOP很新, - 所以这可能是一个愚蠢的问题。请温柔,请...
我想要像 public event = {
month: '1990-02-19',
}
- 类一样创建一个类,但只需要做一些修改(例如:如果有超过1天的时间,那么它仍会输出为几小时和分钟;永远不会打印秒数)。
我的计划是将timedelta-object作为类的输入,同时扩展datetime.timedelta
- 类 - 但这给了我一些问题。这是我的代码:
datetime.timedelta
它给了我这个错误:
class my_own_timedelta_class(datetime.timedelta):
def __init__(self, timedelta_object):
self.foo = 'bar' # not important.
test_duration = datetime.timedelta(days=3, hours=5, minutes=20, seconds=7)
testing = my_own_timedelta_class(test_duration)
为什么我会收到错误?我正在做的就是将unsupported type for timedelta days component: datetime.timedelta
传递给构造函数 - 我甚至没有对它做任何事情,它仍然抱怨!?
我还考虑过将秒数传递给timedelta_object
,但我认为传递整个对象会更“干净”。
还有更好的方法吗?
答案 0 :(得分:1)
您目前正在尝试同时执行inheritance:
class my_own_timedelta_class(datetime.timedelta)
def __init__(self, timedelta_object):
这就像说#34;我的新班级是一辆汽车,但它包含一辆汽车"。选择其中一个;两者都没有意义。
在这种特殊情况下,我建议进行组合,因为子类化timedelta
可能很麻烦。只需从timedelta
中删除继承,您就可以了:
class my_own_timedelta_class:
def __init__(self, timedelta_object):
self.delta= timedelta_object
self.foo = 'bar' # not important.