在以下代码中
class Student(object):
def __init__(self):
self.vals=[9,2,4,1]
def allstudents(self):
self.vals.sort()
for s in self.vals:
yield s
jack = Student()
jack.allstudents().next()
->当然输出是1jack.allstudents().next()
->这是问题所在:该行的输出仍然为1。为什么不是2?jack.allstudents().next()
->此行的输出仍然为1。为什么不是4?有人可以给我一个解释吗?
最佳答案
因为您不断地反复调用allstudents()
方法。尝试将其存储在变量中,然后在分配给它的变量上调用next()
,例如:
var = jack.allstudents()
var.next()
var.next()
等等。
关于python - Python:如何通过此类实例在类方法中实现Generator,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32025894/