Polymorphism comes from two Greek words meaning ‘many shapes’ and is best explained by a real world example. The feet of a human are a very different shape to that of a centipede, but they have basically the same function, walking. So we can refer to the feet of a human, centipede, horse, or frog without confusion. Polymorphism allows the programmer to give the same names to methods and attributes that play similar roles in distinctive classes.
As an example we will use a built-in operator, function or method on an object without knowing what kind of object it is.

Here we use the count method on a string.

a = 'This is a string'
print a.count('s')

Now we will use the count method on a list.

b = [1,2,3,4,5,'s','i','n']
print b.count('s')