我可能在你的问题中遗漏了一些微妙的复杂之处,但以你的第一个例子来看,是什么阻止了你这样做:
class HandlerCase1(object):
def handle_stuff(self, *args, **kwargs):
print "Handling case 1"
class HandlerCase2(object):
def handle_stuff(self, *args, **kwargs):
print "Handling case 2"
if __name__ == "__main__":
handlers = []
handlers.append(HandlerCase1())
handlers.append(HandlerCase2())
for h in handlers:
h.handle_stuff()
如果您希望这些类共享一些公共(基本)功能,是否有什么东西阻止您这样做:
class Handler(object):
def common_function(self):
print "Common function"
class HandlerCase1(Handler):
def handle_stuff(self, *args, **kwargs):
print "Handling case 1"
class HandlerCase2(Handler):
def handle_stuff(self, *args, **kwargs):
print "Handling case 2"
if __name__ == "__main__":
handlers = []
handlers.append(HandlerCase1())
handlers.append(HandlerCase2())
for h in handlers:
h.handle_stuff()
h.common_function()