魔法属性(只限python2.x版本,python3.x无此功能):
__getslice__、__setslice__、__delslice__:分别用于分片操作,如列表的切片
案例:
# coding=utf-8
class Foo(object):
save_list = [1, 2, 3, 4, 5, 6, 34, 23, 5]
def __getslice__(self, i, j):
print "__getslice__:"
return self.save_list[i: j]
def __setslice__(self, i, j, sequence):
print "__setslice__:"
self.save_list[i:j] = sequence
print self.save_list
def __delslice__(self, i, j):
print "__delslice__:"
del self.save_list[i: j]
print self.save_list
obj = Foo()
result = obj[1: 2]
print(result)
obj[0: 1] = [23, 22, 15, 4]
del obj[4:]
"""
结果:
__getslice__:
[2]
__setslice__:
[23, 22, 15, 4, 2, 3, 4, 5, 6, 34, 23, 5]
__delslice__:
[23, 22, 15, 4]
"""