มีอีกวิธีนึงในการที่จะให้คลาสลูกเรียกเมธอด __init__
โดยอัตโนมัติ นั่นคือเราจะไม่สร้างเมธอด __init__
ในคลาสลูก แต่สร้างเมธอดใหม่ที่เมธอด __init__
จะมาเรียกใช้อีกทีนึง
ตัวอย่าง
>>> class X: ... def __init__(self,*argv,**keyw): ... if len(self.__class__.__bases__) == 0: ... self._parent = None ... else: ... self._parent = self.__class__.__bases__[0] ... print self._parent ... self.init(argv, keyw) ... def init(self,*argv,**keyw): ... pass ... >>> class Y(X): ... def init(self,*argv,**keyw): ... print 'Print from class Y' ... >>> class Z(Y): ... pass ... >>> y=Y() __main__.X Print from class Y >>> z=Z() __main__.Y Print from class Y