多重継承された場合のsuper
super(type[,object-or-type])で継承されたクラスが取得できるみたいだけど、多重継承されたクラスに同じメソッドがある場合どうなるのかなーと思って試してみた。
class SomeName(object): """ データとコードは通常ここで定義 """ sample = 100 def repeat(self, N): for i in range(N): print(i) class Behave(object): def __init__(self, name): self.name = name def once(self): print "Hello,", self.name def rename(self, newName): self.name = newName def repeat(self, N): for i in range(N): self.once() # どうも継承順序で優先されるメソッドが決定されるみたい # SomeName.repeatが優先される class OneMore2(SomeName,Behave): def repeat(self, N): super(OneMore2, self).repeat(N + 1) # Behave.repeatが優先される class OneMore3(Behave,SomeName): def repeat(self, N): super(OneMore3, self).repeat(N + 1)