Python 生成器 装饰器 闭包 迭代器 元类 gil log 协程 垃圾回收 描述符 property

2023-11-17

迭代器和生成器

在 Python 中,迭代器(Iterator)是一种通过循环访问数据集合的方式,可以逐个访问集合中的元素,而不需要提前将整个集合加载到内存中。Python 中的迭代器通常是基于可迭代对象(Iterable)来实现的,例如列表、元组、字典、字符串等。

生成器(Generator)是一种特殊的迭代器,可以在每次循环中动态地生成数据,而不是一次性生成所有数据。生成器非常适合处理大量数据,因为它们只在必要时才计算并生成需要的数据,而不是一次性生成所有数据占用大量内存。

它们之间的区别在于,迭代器是一种通过定义类来实现的,必须实现 __iter__()__next__() 两个方法,每个方法的含义、用法和返回值在实现时都需要考虑到所有细节。而生成器则比较简单,可以通过关键字 yield 来生成数据,每次调用生成器时会自动从上一个 yield 语句处继续执行,直到生成器结束或者遇到 return 语句。在 Python 中,生成器通常通过函数来定义,例如:

def my_generator(num):
    for i in range(num):
        yield i

该生成器函数用于生成 0num - 1 的整数,可以通过 for 循环来访问生成器中的元素,例如:

for item in my_generator(10):
    print(item)

这里的 my_generator(10) 返回一个生成器对象,它会动态地生成 09 的整数,循环直到生成器结束或者遇到 return 语句。

迭代器

到目前为止,您可能已经注意到大多数容器对象都可以使用 for 语句:

for element in [1, 2, 3]:
    print(element)
for element in (1, 2, 3):
    print(element)
for key in {'one':1, 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 生成器 装饰器 闭包 迭代器 元类 gil log 协程 垃圾回收 描述符 property 的相关文章

随机推荐