{site_name}

{site_name}

🌜 搜索

Python PEP(Python Enhancement Proposal)

Python 𝄐 0
python生成器怎么用,python生成器yield,python3生成器,生成器函数 python,python中的生成器,python生成器作用
Python PEP(Python Enhancement Proposal) 289 是一个提案,其中介绍了一种称为“生成器表达式”的语法。它是 Python 中用于生成器的一种简洁的语法形式,允许在单行代码中创建生成器对象。

生成器表达式的语法类似于列表推导式(List Comprehension),但使用括号而不是方括号。在括号中,我们可以定义一个 for 循环来迭代某个可迭代对象,并在后面添加条件语句。这将返回一个生成器对象,而不是列表对象。

下面是一个简单例子:


squares = (x**2 for x in range(10))
print(squares)
# <generator object <genexpr> at 0x000001>

for square in squares:
print(square)
# 0
# 1
# 4
# 9
# 16
# 25
# 36
# 49
# 64
# 81


在这个例子中,我们使用一个生成器表达式来创建一个生成器对象 squares ,该对象生成了从 0 到 9 的平方数。然后,我们遍历生成器对象并打印每个平方数。

注意,生成器对象只能被遍历一次,因为它们是惰性计算的。也就是说,当我们调用 next() 函数时,它会计算下一个值并返回它,直到没有更多的值可供计算。如果我们尝试再次遍历相同的生成器对象,它将不会产生任何输出。