Python 我对迭代器和生成器类的理解-如果我错了,请纠正我
我最近发表了一篇文章,在你们中一些人的帮助下,以及我的阅读,我了解到: 从我最初发布的问题来看,我的问题是——Python 我对迭代器和生成器类的理解-如果我错了,请纠正我,python,python-3.x,python-2.7,Python,Python 3.x,Python 2.7,我最近发表了一篇文章,在你们中一些人的帮助下,以及我的阅读,我了解到: 从我最初发布的问题来看,我的问题是——对于b中的项有什么意义。虽然我知道我在某些方面是如何工作的,但我不明白为什么我们在把项目(见下面的代码)放在b.volume而不是b中时使用b。如果我们从不在b中放东西(而是放在b.volume中),python怎么知道b中有什么呢 因此,我认为应该是b卷中i的,而不是b卷中i的 以下是我认为正确的: 我认为,当我们为b中的I调用时,它为对象b调用\uuuuuuuuuuuuuuuuuuu
对于b
中的项有什么意义。虽然我知道我在某些方面是如何工作的,但我不明白为什么我们在把项目(见下面的代码)放在b.volume
而不是b
中时使用b
。如果我们从不在b
中放东西(而是放在b.volume
中),python怎么知道b
中有什么呢
因此,我认为应该是b卷中i的,而不是b卷中i的
以下是我认为正确的:
我认为,当我们为b中的I调用时,它为对象b
调用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu>方法。它告诉你去\uuuuuuuuuuuuu
和\uuuuuuuuuuu下一个\uuuuuuuuuu
的
因此,在b
中i的之后,调用对象b
的方法,然后调用下一个方法。\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
此外,Python不知道它将执行多少次迭代,因为在范围(5)
中没有为i的eq
生成一个迭代了[0,1,2,3,4]到b的列表
直到提出停止迭代为止
在b.volume
中为i做事是可行的,但这样做会破坏和的目的
这是正确的吗 您认为代码中的所有内容都是正确的,但也只是告诉您,这对b.volume
也有效,因此:
for i in b.volume:
print('The {} weighs {} kg'.format(i.name.lower(), i.weight))
还提供:
The cat weighs 5 kg
The nintendo switch weighs 1 kg
The potatoes weighs 2 kg
注意:(如我的示例所示),项目
在本例中(在最后一个循环中)应该是i
。@lynxx乐于帮助,:-),向上投票谢谢:)另外,是的b.volume
可以工作,但这会破坏迭代器的用途(使用b.volume,迭代器不是必需的),不是吗?@lynxx是的,那么就不需要\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。
The cat weighs 5 kg
The nintendo switch weighs 1 kg
The potatoes weighs 2 kg