Python 生成器是否简单地使用_iter____和next函数生成新对象?
我试图自己寻找这个答案,但声音太大了 python中的生成器是否只是用户创建迭代器对象的方便包装器 定义生成器时:Python 生成器是否简单地使用_iter____和next函数生成新对象?,python,Python,我试图自己寻找这个答案,但声音太大了 python中的生成器是否只是用户创建迭代器对象的方便包装器 定义生成器时: def test(): x = 0 while True: x += 1 yield x python只是创建一个新对象,添加_iter__)方法,然后将其余代码放入下一个函数中吗 class Test(object): def __init__(self): self.x = 0 def __iter__(self): ret
def test():
x = 0
while True:
x += 1
yield x
python只是创建一个新对象,添加_iter__)方法,然后将其余代码放入下一个函数中吗
class Test(object):
def __init__(self):
self.x = 0
def __iter__(self):
return self
def next(self):
self.x += 1
return self.x
No-Generator还提供其他方法.send、.throw等,可以用于比简单地生成迭代器(例如协同路由)更多的目的 事实上,生成器是一种完全不同的野兽,也是一种核心语言特性。如果不是将它们烘焙到语言中,那么很难用普通python创建一个
话虽如此,生成器的一个应用是为创建迭代器提供一个简单的语法:-.否-生成器还提供其他方法.send、.throw等,并且可以用于比简单地生成迭代器(例如协同路由)更多的用途 事实上,生成器是一种完全不同的野兽,也是一种核心语言特性。如果不是将它们烘焙到语言中,那么很难用普通python创建一个 话虽如此,生成器的一个应用是为创建迭代器提供一个简单的语法:- python中的生成器是否只是用户创建迭代器对象的方便包装器 不,生成器是一个函数,其中as迭代器是类。因此,生成器不能是迭代器的对象。但在某种程度上,您可以说生成器是获得类似迭代器功能的简化方法。这意味着: 所有生成器都是迭代器,但并非所有迭代器都是生成器 我强烈建议您参考以下wiki链接: -一次遍历一个集合 -一次生成一个序列,一个项目 迭代器通常具有下一个方法来从流中获取下一个元素。生成器是绑定到函数的迭代器 我建议您参考: python中的生成器是否只是用户创建迭代器对象的方便包装器 不,生成器是一个函数,其中as迭代器是类。因此,生成器不能是迭代器的对象。但在某种程度上,您可以说生成器是获得类似迭代器功能的简化方法。这意味着: 所有生成器都是迭代器,但并非所有迭代器都是生成器 我强烈建议您参考以下wiki链接: -一次遍历一个集合 -一次生成一个序列,一个项目 迭代器通常具有下一个方法来从流中获取下一个元素。生成器是绑定到函数的迭代器 我建议你参考:。不。像这样:
>>> def test():
... x = 0
... while True:
... x += 1
... yield x
...
>>> type(test)
<type 'function'>
按照你的想法去做,恐怖才刚刚开始;-如果您考虑如何创建一个对象来模拟这一点:
def test():
yield 2
yield 3
yield 4
现在,您的下一个方法必须携带额外的隐藏状态,以便记住下一个收益率。用一些条件将其包装在一些嵌套循环中,然后将其展开到单个条目中,这将成为一场噩梦。不。像这样:
>>> def test():
... x = 0
... while True:
... x += 1
... yield x
...
>>> type(test)
<type 'function'>
按照你的想法去做,恐怖才刚刚开始;-如果您考虑如何创建一个对象来模拟这一点:
def test():
yield 2
yield 3
yield 4
现在,您的下一个方法必须携带额外的隐藏状态,以便记住下一个收益率。用一些条件将其封装在一些嵌套循环中,然后将其展开到单个条目中,这将成为一场噩梦。这正是我想要的答案。我不知道该如何确切地说出这种语言在幕后的作用。我很高兴你使用了dis模块-我知道我在寻找什么,但无法想出措辞来实际找到结果。在这种情况下,我认为你会发现阅读发电机首次提出的政治公众人物计划是有益的-你现在掌握了足够多的知识来理解其中的大部分内容:-这正是我正在寻找的答案。我不知道该如何确切地说出这种语言在幕后的作用。我很高兴您使用了dis模块-我知道我在寻找什么,但无法想出实际找到结果的措辞。在这种情况下,我认为您会发现阅读发电机首次提出的政治公众人物计划是有益的-您现在掌握了足够的知识,能够理解其中的大部分内容:-谢谢。我只是不确定这两个对象最终是否归结为相同的字节码。谢谢。我只是不确定这两个对象最终是否归结为相同的字节码。