【发布时间】:2011-12-08 19:27:47
【问题描述】:
我有以下类型的超类/子类设置:
class SuperClass(object):
def __init__(self):
self.do_something() # requires the do_something method always be called
def do_something(self):
raise NotImplementedError
class SubClass(SuperClass):
def __init__(self):
super(SuperClass, self).__init__() # this should do_something
def do_something(self):
print "hello"
我希望 SuperClass init 始终调用尚未实现的 do_something 方法。我正在使用python 2.7。也许 ABC 可以做到这一点,但还有其他方法吗?
谢谢。
【问题讨论】:
-
现在SubClass的init不是调用SuperClass的init,而是SuperClass的超类的init,也就是object。所以 init 根本没有调用 do_something 。你确定这是你想要的行为吗?
标签: python subclass init super abc