迭代器,生成器,装饰器

mac2026-03-20  2

迭代器

可迭代对象

定义: 具有__iter__函数的对象,可以返回迭代器对象。 语法: class 可迭代对象名称: def __iter__(self): return 迭代器 使用: for 变量名 新可迭代对象: 语句 原理: 迭代器 = 可迭代对象.__iter__() while True: try: print(迭代器.__next__()) except Exeception as e: break

迭代器对象

定义: 可以被next()函数调用并返回下一个值的对象 语法: class 迭代器类名: def __init__(self, 聚合对象): self.聚合对象=聚合对象 def __next__(self): if 没有元素: raise StipIteration return 聚合对象元素 说明: 聚合对象通常是容器对象 作用: 使用者只需通过一种方式,便可简洁明了的获取聚合对象,而又无需了解其内部结构。

generator

1.定义:能够动态(循环一次计算一次返回一次)提供数据的可迭代对象。 2. 作用:再循环过程中,按照某种算法推算数据,不必创建容器存储完整的结果,从而节省内存空间,数据量越大,优势越明显。 3. 以上操作也被称为延迟操作或惰性操作。通俗的讲就是在需要的时候才计算结果,而不是一次计算出所有结果。

生成器函数

4. 定义:含有yield语句的函数,返回值为生成器对象。 5. 语法: --创建: def 函数名(): """ yield数据 “”“ -- 调用: for 变量名 in 函数名: 语句 6. 执行过程 1. 调用生成器函数会自动创建迭代器对象。 2. 调用迭代器对象的__next__()方法时才执行生成器对象 3. 每次执行到yield语句时返回数据,暂时离开。 4. 待下次调用__next__()方法时继续从离开处继续执行。 7. 原理 生成迭代器大致规则如下: - 将yield关键字以前的代码妨碍next方法中。 - 将yield关键字后面的数据作为next方法的返回值。

内置生成器

枚举函数 enumerate 1. 语法: for 变量 in enumerate(可迭代对象): pass for index,元素 in enumerate(可迭代对象): pass 2. 作用: 遍历可迭代对象时,可以建索引与元素组合为一个元组。

函数式编程

1. 定义: - 用一系列函数解决问题。 - 允许将函数作为参数传入另一个函数。 - 允许函数返回一个函数。 2. 高阶函数: 将函数作为参数或返回值的函数。 3. lambda 表达式 1. 定义:是一种匿名方法。 2. 作用:作为参数传递时语法简洁,优雅,代码可读性强,随时创建和销毁减少程序耦合度。 3. 语法:变量 = lambda 形参:方法体 4. 调用: 变量(实参) 5. 说明:形参没有可以不填 方法体只能有一条语句,切不支持赋值语句

生成器表达式

1. 定义: 用推导式形式创建生成器对象 2. 语法: 变量 = (表达式 for 变量 in 可迭代对象 [if 真值表达式])
最新回复(0)