
正文
试写Python内建函数range()
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
还没查阅源码,先试着练手
class my_range(object):
def __init__(self, *args):
if not args:
raise TypeError, 'range expected at least 1 arguments, got 0'
elif len(args) == 1:
self.start, self.stop, self.step = (0, args[0], 1)
elif len(args) == 2:
self.start, self.stop, self.step = (args[0], args[1], 1)
elif len(args) == 3:
self.start, self.stop, self.step = args
else:
raise TypeError, 'range expected at most 3 arguments, got %d' % len(args)
self.n = 0
def next(self):
while True:
r = self.start + self.step * self.n
if r >= self.stop:
break
self.n += 1
return r
raise StopIteration
def __iter__(self):
return self







