1) You are calling sf.FrameListener.__init__ twice, do it just once, i.e:
def __init__(self, win, cam, sc, ent, walk , n ):
# Subclass any Python-Ogre class and you must call its constructor.
sf.FrameListener.__init__(self, win, cam)
2) For your demo you need an animation state for each entity, do a global edit and rename self.animationState to self.animationState[x].
...
self.distance = []
self.animationState = []
for x in xrange(2):
self.animationState.append(ent[x].getAnimationState('Idle'))
#self.animationState[x] = ent[x].getAnimationState('Idle')
self.animationState[x].setLoop(True)
self.animationState[x].setEnabled(True)
...