39 lines
814 B
Python
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)
|