¿Cómo funciona el polimorfismo en Python?

Soy nuevo en Python ... y provengo de un entorno principalmente de Java, si eso explica algo.

Estoy tratando de entender el polimorfismo en Python. Quizás el problema es que estoy esperando los conceptos que ya sé proyectar en Python. Pero armé el siguiente código de prueba:

class animal(object):
    "empty animal class"

class dog(animal):
    "empty dog class"

myDog = dog()
print myDog.__class__ is animal
print myDog.__class__ is dog

Del polimorfismo al que estoy acostumbrado (por ejemplo, javainstanceof), Esperaría que ambas afirmaciones se impriman como verdaderas, como una instancia de perroes un animal y tambiénes un perro. Pero mi salida es:

False
True

¿Qué me estoy perdiendo?

Respuestas a la pregunta(3)

Su respuesta a la pregunta