|
发表于 2020-3-27 08:12:43
|
显示全部楼层
兄弟,你这个问题也太刁钻了……
切片会调用一个对象中的__getitem__方法,普通的切片会向__getitem__传入一个整数或切片对象
但你这是多重切片,也就是向__getitem__传入一个元组,其中包括多个整数或切片对象
给你看个例子:
- class n:
- def __getitem__(a,b):return b
- def __delitem__(a,b):return None
- >>> k=n()
- >>> k[1:5]
- slice(1, 5, None)
- >>> k[1:4:2,7:15:3,19:27:9]
- (slice(1, 4, 2), slice(7, 15, 3), slice(19, 27, 9))
- >>> k[:,:,:,:]
- (slice(None, None, None), slice(None, None, None), slice(None, None, None), slice(None, None, None))
复制代码
可以看到,多重切片的语法基本与普通切片相同,但是两项之间要有一个逗号。
PS:这东西大概就是叫多重切片吧…大概 |
|