simple understanding of 'for' loop in polymorphism
<pre><code>class Animal:
    def __init__(self, name):    
        self.name = name
    def talk(self):              
        raise NotImplementedError("Subclass must implement abstract method")

class Cat(Animal):
    def talk(self):
        return 'Meow!'

class Dog(Animal):
    def talk(self):
        return 'Woof! Woof!'

animals = [Cat('Missy'),
           Dog('Lassie')]

for animal in animals:
    print animal.name + ': ' + animal.talk()
</code></pre>

<p>I want to know why "<strong>for animal in animals</strong>" animals is taken? what is that <strong>animals</strong> stand for??
here the class name is animal.</p>
