Pythonクラスの継承検索順序


class A(object):
	def __init__(self,a,b):
		print a,b
	def printA(self):
		print"this is printA  function"
class B(A):
	def funB(self):
		print "this B's fun function"
class C(A):
	def funB(self):
		print "here override B's funB function"
	def funC(self):
		print "this C's funC function"
class D(B,C):
	pass
c = C()
c.funB()

新式类:直接または间接(子类の父类、おじいさん类..祖师爷类継承
objectも間接)継承objectクラスを新式クラスと呼ぶ
Python2.7で明示的にobjectを継承しないと新しいクラスではありません.このように書かなければなりません.
class A(object)こそがobjectクラスを継承する
Python 3ではobjectクラスがデフォルトで継承されています
新しいクラスの継承検索順序は、広さ優先
class D(object)
class C1(D)
class C2(D)
class B(C1,C2)
class A(B,C 1,C 2):継承検索順は、A->B->C 1->C 2->D->object
クラシッククラスの継承の検索順序は、左から右へ、深さを優先します.
上のclass A(B,C 1,C 2)の検索順序は、A->B->C 1(ここでC 1はB継を指す)である
承のC 1)->D->object->C 2