example-code-2e/sequences/slice_test.py
2014-10-14 14:26:55 -03:00

39 lines
814 B
Python

"""
>>> s = SliceDemo()
>>> s[1]
__getitem__: 1
1
>>> s[2:5]
__getitem__: slice(2, 5, None)
[2, 3, 4]
>>> s[:2]
__getitem__: slice(None, 2, None)
[0, 1]
>>> s[7:]
__getitem__: slice(7, None, None)
[7, 8, 9]
>>> s[:]
__getitem__: slice(None, None, None)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> s[1:9:3]
__getitem__: slice(1, 9, 3)
[1, 4, 7]
>>> s[1:9:3, 2:3]
__getitem__: (slice(1, 9, 3), slice(2, 3, None))
ERROR: list indices must be integers, not tuple
"""
class SliceDemo:
def __init__(self):
self.items = list(range(10))
def __getitem__(self, pos):
print('__getitem__:', pos)
try:
return self.items.__getitem__(pos)
except TypeError as e:
print('ERROR:', e)