'''
迭代器:两个基本方法:iter()和next()
迭代器是一个可以记住遍历的位置的对象。

迭代器对象从集合等第一个元素开始访问,直到所有的元素被访问结束,迭代器只能往前不会后退。

迭代器有两个基本的方法:iter()和next()

字符串,列表或元组对象都可以用于创建迭代器。

迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素。迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件

特点:

访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容
不能随机访问集合中的某个值 ,只能从头到尾依次访问
访问到一半时不能往回退
便于循环比较大的数据集合,节省内存
eg:
list = [1,2,3,4]
it = iter(list)
print(next(it))
print(next(it))
import sys # 引入 sys 模块

list=[1,2,3,4]
it = iter(list) # 创建迭代器对象
while True:
try:
print (next(it))
except StopIteration:
sys.exit()
'''

'''装饰器:
1、不能修改被装饰函数的源代码。
2、不能修改被装饰函数的调用方式。
3、不能改变被装饰函数的执行结果。装饰器对被装饰函数是透明的。

如何理解装饰器
1、函数即“变量”
2、高阶函数
a:把一个函数名作为实参传递给另外一个函数
b:返回值中包含函数名
3:嵌套函数在一个函数体内声明另一个函数称为函数的嵌套
eg:
>>> def now():
... print('2017-05-01')
...
>>> f = now
>>> f()
2017-05-01
'''

Python的迭代器与装饰器的更多相关文章

  1. Python基础-迭代器&生成器&装饰器

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 我现在有个需求,看 ...

  2. Python之迭代器、装饰器、软件开发规范

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...

  3. 5.python(迭代器,装饰器,生成器,基本算法,正则)

    一,迭代器 1.迭代器  (1)迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退.  (2)对于原生支持随机访问的数据结构(如t ...

  4. Python学习——迭代器&生成器&装饰器

    一.迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素.迭代器仅 ...

  5. Day4 - Python基础4 迭代器、装饰器、软件开发规范

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  6. Python基础4 迭代器、装饰器、软件开发规范

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 1.列表生成式,迭代器&生成器 列表生成式 孩子,我现在有个需 ...

  7. Python 迭代器&生成器,装饰器,递归,算法基础:二分查找、二维数组转换,正则表达式,作业:计算器开发

    本节大纲 迭代器&生成器 装饰器  基本装饰器 多参数装饰器 递归 算法基础:二分查找.二维数组转换 正则表达式 常用模块学习 作业:计算器开发 实现加减乘除及拓号优先级解析 用户输入 1 - ...

  8. Python_Day5_迭代器、装饰器、软件开发规范

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 1.列表生成式,迭代器&生成器 列表生成 >>> a = [i+1 ...

  9. python函数与方法装饰器

    之前用python简单写了一下斐波那契数列的递归实现(如下),发现运行速度很慢. def fib_direct(n): assert n > 0, 'invalid n' if n < 3 ...

随机推荐

  1. Slf4j打印异常的堆栈信息

    一.前言 直接用logger.info("异常信息为:"+e)或者logger.info(e.getMessage())只能记录到异常的描述信息,却没有其异常具体发生在哪一行代码. ...

  2. OSMC Vs. OpenELEC Vs. LibreELEC – Kodi Operating System Comparison

    Kodi's two slim-and-trim kid brothers LibreELEC and OpenELEC were once great solutions for getting t ...

  3. [算法练习]Reverse Integer

    题目说明: Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return –321   ...

  4. ORM的补充

    之前学习的orm的操作类似: create delete update filter/all exclude values values_list get first last order_by 补充 ...

  5. svchost.exe占网速的解决办法

    1.win+R,然后输入gpedit.msc打开本地组策略编辑器. 2.打开window设置--安全设置--本地策略--安全选项--找到 用户帐户控制: 以管理员批准模式运行所有管理员 和 用户帐户控 ...

  6. CSMA/CD 3

    一.二进制指数类型退避算法 (truncated binary exponential type) 发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据. 目的:重传时再次发生碰撞的 ...

  7. 使用ESP8266连接到Azure

    很多同学在问我,ESP8266如何连接到Azure,因为官方只有Spark Fun之类的DevKit(开发套件)出了教程(我只找到了套件的文档). 先上视频:http://v.youku.com/v_ ...

  8. HTTP协议图--HTTP 报文首部之请求行、状态行

    1.请求行 举个栗子,下面是一个 HTTP 请求的报文: GET /index.htm HTTP/1.1 Host: sample.com 其中,下面的这行就是请求行, GET /index.htm ...

  9. python的进度条实现

    进度条最主要的问题就是所有字符全部在同一行,而且可以修改.然而当执行print语句的时候,python会在打印完这个语句的同时,在结尾加上换行‘\n’,这就导致在控制台下一旦被print之后就无法修改 ...

  10. 死磕salt系列-salt 配置文件管理

    SLS是Salt State系统的核心,用来描述系统的目标状态,使用YAML语言书写.被用作配置文件管理. SLS文件 sls配置文件分为两种类型 top.sls 这是所有配置文件的入口 sls 这是 ...