python中getitem_Python:如何在__getitem__中实现slice?

我有一个“合成”列表(其中一个数据比你想在内存中创建的数据大),我__getitem__看起来像这样:def __getitem__( self, key ) :

if isinstance( key, slice ) :

#Get the start, stop, and step from the slice

return [self[ii] for ii in xrange(*key.indices(len(self)))]

elif isinstance( key, int ) :

if key < 0 : #Handle negative indices

key += len( self )

if key < 0 or key >= len( self ) :

raise IndexError, "The index (%d) is out of range."%key

return self.getData(key) #Get the data from elsewhere

else:

raise TypeError, "Invalid argument type."

切片不会返回相同的类型,这是一个禁忌,但它对我有用。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部