class A: pass class B: pass class C(A): pass class D(A, B): pass # Evaluer l'objet passé en paramètre def evaluer(object): print object, "=>", if isinstance(object, A): print "A", if isinstance(object, B): print "B", if isinstance(object, C): print "C", if isinstance(object, D): print "D", print a = A() b = B() c = C() d = D() evaluer(a) evaluer(b) evaluer(c) evaluer(d) evaluer("string") """ <__main__.A instance at 1> => A <__main__.B instance at 2> => B <__main__.C instance at 3> => A C <__main__.D instance at 4> => A B D string => """