#!/usr/bin/env python
# -*- coding:utf-8 -*-
__author__ = "loki" # function: Modeled range
from collections import Iterable, Iterator class Range:
def __init__(self, start, stop, step=1):
self.num = start
self.stop = stop
self.jump = step def __iter__(self):
return self def __next__(self):
if self.num >= self.stop:
raise StopIteration
n = self.num
self.num += 1
if self.jump > 1: # step > 1
n = n * self.jump
if n <= self.stop:
return n
else:
raise StopIteration
return n # default step f = Range(0, 12, 2)
f1 = range(0, 12, 2) # print(isinstance(f, Iterable))
# print(isinstance(f, Iterator)) # for item in f: <---这个地方把值取空了,自然获得的list的结果是空列表了 - -|||
# print(item) print(type(f))
print(list(f))
print('---------分割线-------------')
print(type(f1))
print(list(f1)) print(dir(f))
print(dir(f1))

遗留问题:

虽然,完成了 range(启始, 结束, 步进).但是,发现官方的range在执行list()的时候会直接生成列表。而我做的这个“山寨”好像就返回的是空列表。(已解决)

原因就是,上面一个for循环把f的值取空了,下面在进行list...自然是空列表啦 。 哈 。 哈。 哈

最新文章

  1. CLR via C#(01)-.NET平台下代码是怎么跑起来的
  2. canvas实现类似弹窗广告效果
  3. OS.ENVIRON()详解
  4. [Stephen]C#中调用C++动态链接库
  5. bzoj3438
  6. HTML5 离线缓存忽略主页实例
  7. QNetworkAccessManager跳转URL处理(使用QNetworkRequest::RedirectionTargetAttribute获得跳转URL)
  8. hdu 1760 一道搜索博弈题 挺新颖的题目
  9. Linux账号管理(二)
  10. php中empty()、isset()、is_null()和变量本身的布尔判断区别(转)
  11. Xamarin.Android 入门实例(3)之呼叫电话号码
  12. Java探秘之神秘的字符串String(二)
  13. hdu-4612(无向图缩点+树的直径)
  14. C语言 Struct 结构体在 Java 中的体现
  15. mpt2sas0: log_info(0x31120100): originator(PL), code(0x12), sub_code(0x0100)及同类问题的追踪
  16. 【转】使用minizip解压缩多个文件(基于zlib)
  17. CentOS 7安装WordPress
  18. JS校验身份证号的合法性
  19. 准备dbcp2-2.1.1和pool2-2.4.2 、commons-dbcp-1.4jar包
  20. Linux修改用户密码有效期

热门文章

  1. day 26 元类
  2. VC++ 使用ShellExecute函数调用邮箱客户端发送邮件(可以带附件)
  3. python --- 17. 面向对象成员
  4. topcoder srm 708 div1 -3
  5. MongoDB的常用操作总结
  6. 如何查看linux程序被何种版本的编译器编译的?
  7. 记录一下 ajax的基础传送
  8. python 之 运算符
  9. HIHOcoder 1403 后缀数组一&#183;重复旋律
  10. Learning to Compare Image Patches via Convolutional Neural Networks --- Reading Summary