human
I am working on the file "Generators_and_Coroutines.ipynb".
The first task is:
Any object expecting to be the target of a for loop, if not already an iterator, needs to either:

dedicate an __iter__ method to showing what to return when iter() gets applied, or 
have a __getitem__ ready to go, as iter( ) is smart enough to make up an object wherein consecutive integers, starting from 0, go to any __getitem__ method.
Can you write Python program for it?
assistant
#Here to return when iter() gets applied, or 
.

class Any:
    
    def __init__(self):
        self.__dict__ = {0:'scissors', 1:'paper', 2:'rock'}
    
    def __getitem__(self, n):  # enough for iter() to go on
        if n == len(self.__dict__):
            raise StopIteration  # tells for loop when to stop
        return self.__dict__[n]
    
for thing in Any():
    print(thing)