Discuss / Python / 现学现卖,山寨range

现学现卖,山寨range

Topic source

siusuu

#1 Created at ... [Delete] [Delete and Lock User]


class my_range(object):
    def __init__(self, n):
        self.n = n
        self.m = -1
    def __iter__(self):
        return self
    def __next__(self):
        self.m += 1
        if self.m >= self.n :
         raise StopIteration();
        return self.m

久疤_796

#2 Created at ... [Delete] [Delete and Lock User]

让我再来山寨个

>>> class myRange(object):
    def __init__(self,start=0,end=None,d=1):
        L = []
        if end==None:
            self.__start,self.__end = 0,start
        else:
            self.__start,self.__end = start,end
        self.__d = d
        self.__start = self.__start - d
    def __iter__(self):
        return self
    def __next__(self):
        self.__start = self.__start + self.__d
        if self.check():
            raise StopIteration()
        return self.__start
    def check(self):
        if self.__d>0:
            return self.__start>=self.__end
        return self.__start<=self.__end

久疤_796

#3 Created at ... [Delete] [Delete and Lock User]

range() arg 3 must not be zero


  • 1

Reply