我正在尝试__getitem__在python中实现类的方法.我想试试像......
def __getitem__(self, key):
if isinstance(key, int):
return foo(key)
elif isinstance(key, slice):
return [foo(k) for k in key]
else:
raise TypeError("Invalid index.")
Run Code Online (Sandbox Code Playgroud)
...但'slice' object is not iterable每当我真正尝试使用切片时,我都会收到错误.在python中执行此操作的正确方法是什么?
使用indices()切片的方法,并将结果传递给range()或xrange().
>>> slice(2, 5).indices(7)
(2, 5, 1)
>>> range(*slice(2, 5).indices(7))
[2, 3, 4]
>>> range(*slice(2, 10).indices(7))
[2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |