gpt4 book ai didi

python - yield 在 python 2.7 中有什么作用?

转载 作者:太空狗 更新时间:2023-10-29 21:35:19 25 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
The Python yield keyword explained

好吧,我可能把这个问题措辞得很糟糕,但这就是我遇到的情况。

我试图理解 Python 2.7 中的这行代码:

yield (padding_zeros + number_string).encode("ascii")

在这行代码中,padding_zeros是一个由可变个数的'0'组成的字符串,number_string是一个字符串形式的数字,可以是任意数字在 0 到 10000 之间。

我非常有信心 .encode("ascii") 只是将 yield 的输出转换为 ascii。

我完全不知所措的是 yield (padding_zeros + number_string) 的作用。

我知道它会启动一个生成器,但我花了很多时间在线搜索并阅读语法,但我仍然无法弄清楚生成器实际上做了什么。这是我第一次看 python(我的最终目标是将此代码转换为 C#)这无济于事。

所以,基本上,有人可以向我解释一下这行代码的作用吗?它只是将两个字符串加在一起还是做一些更复杂的事情?

对于进一步的上下文,这是该行代码出现的 block :

for current_length in range(4, max_length + 1):
for i in range(0, pow(10, current_length)):
number_string = str(i)
padding_zeros = "0" * (current_length - len(number_string))
yield (padding_zeros + number_string).encode("ascii")

(max_length 正是它听起来的样子——一个表示某物的最大长度的数字)

提前感谢您的所有回答(即使他们告诉我不要成为一个该死的菜鸟):)

编辑:非常感谢您的回答 - 尽管我只能选择一个作为最佳答案,但他们都非常有帮助。也感谢您的评论 - 正如其中一些人指出的那样,What does the "yield" keyword do in Python?是关于 yield 、生成器和迭代的非常好的通用指南,即使我没有找到适合我的具体情况的答案 :)

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com