| 1234567891011121314151617181920212223242526272829303132333435363738 |
- # create a class that has a __getitem__ method
- class A:
- def __getitem__(self, index):
- print('getitem', index)
- if index > 10:
- raise StopIteration
- # test __getitem__
- A()[0]
- A()[1]
- # iterate using a for loop
- for i in A():
- pass
- # iterate manually
- it = iter(A())
- try:
- while True:
- next(it)
- except StopIteration:
- pass
- # this class raises an IndexError to stop the iteration
- class A:
- def __getitem__(self, i):
- raise IndexError
- print(list(A()))
- # this class raises a non-StopIteration exception on iteration
- class A:
- def __getitem__(self, i):
- raise TypeError
- try:
- for i in A():
- pass
- except TypeError:
- print("TypeError")
|