Python切片原理


# -*- encoding: utf-8 -*-
import numbers
# slice 类
class MyList():
    def __init__(self, anylist):
        self.data = anylist

    def __len__(self):
        return len(self.data)

    def __getitem__(self, index):
        print("key is : " + str(index))
        cls = type(self)
        if isinstance(index, slice):
            print("data is : " + str(self.data[index]))
            return cls(self.data[index])
        elif isinstance(index, numbers.Integral):
            return self.data[index]
        else:
            msg = "{cls.__name__} indices must be integers"
            raise TypeError(msg.format(cls=cls))


l = MyList(["My", "name", "is", "tx"])

# 输出结果:
print(l[:1])

posted @ 2023-02-15 10:33  染指未来  阅读(18)  评论(0)    收藏  举报