方法
主要解决两个问题:
- 接收参数时,传入一个参数,该参数被解释成
end
;而传入两个参数时第一个为begin
,第二个才是end
- 迭代功能的实现
def my_range(arg1, arg2=None, arg3=None):
begin = 0; end = 0; step = 1
if arg2 is None:
end = arg1
else:
begin, end = arg1, arg2
if arg3 is not None:
step = arg3
i = begin
while i < end:
yield i
i += step
return
验证
for i in my_range(3, 10, 2):
print(i)
# 3 5 7 9
for j in my_range(5):
print(j)
# 0 1 2 3 4