Pourquoi ne définissant __getitem__ sur une classe en faire itérable en python?

Pourquoi ne définissant __getitem__ sur une classe en faire itératif?

Par exemple, si j'écris:

class b:
  def __getitem__(self, k):
    return k

cb = b()

for k in cb:
  print k

- Je obtenir la sortie:

0
1
2
3
4
5
6
7
8
...

Je voudrais vraiment s'attendre à voir une erreur retourné à partir de "pour k cb:"

InformationsquelleAutor grieve | 2009-05-29