这将实际工作周围的其他方法 - ItemChild
的__init__
方法将首先被调用,并且可以转发只什么是适当的Item
:
class Item:
def __init__(self, param1):
print "Item.__init__ doing something with param1"
# do something with param1
class ItemChild(Item):
def __init__(self, param1, param2, param3):
print "Starting ItemChild.__init__"
super(ItemChild, self).__init__(param1)
print "ItemChild.__init__ doing something with params 2 and 3"
# do something with param2 and param3
当你调用ItemChild(1, 2, 3)
的流程如下: :
Starting ItemChild.__init__
Item.__init__ doing something with param1
ItemChild.__init__ doing something with params 2 and 3
不是:
Item.__init__ doing something with param1
Starting ItemChild.__init__
ItemChild.__init__ doing something with params 2 and 3
当然,您可以重新安排您的super
调用,以便在您做其他事情之前或之后运行 - 或者如果您不想让父母的行为运行,则可以完全保留它。
注意在3.x中,你可以使用新的'super()',它有一些魔力,并且不需要参数。 –