Tôi đang chơi đùa với máy phát điện để hiểu rõ hơn về cách họ làm việc, nhưng tôi nhầm lẫn với kết quả của các đoạn mã sau:Python Generator: khó hiểu kết quả
>>> def gen():
... for i in range(5):
... yield i
...
>>> count=gen()
>>> for i in count:
... print count.next()
...
1
3
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
StopIteration
>>>
gì đang xảy ra ở đây? Có vẻ như nó chạm vào dòng "cho tôi đếm:", máy phát sẽ mang lại giá trị đầu tiên. Tôi không chắc.
EDIT: Tôi nên thêm rằng tôi không cố gắng "làm cho nó đúng". Tôi đang cố gắng phá vỡ mọi thứ để xem cách Python phản ứng. Tôi tìm hiểu thêm về ngôn ngữ khi tôi tạo lỗi. Lỗi này đã cho tôi gốc nhưng bây giờ tất cả đã rõ ràng. Cho đến nay tất cả các câu trả lời đều ngắn gọn và ngọt ngào. Cảm ơn mọi người!
'cho i in count' và' count.next() 'are * both * cố gắng lấy mục tiếp theo - tại sao bạn sử dụng chúng cả trong cùng một vòng lặp ?! – jonrsharpe