Câu trả lời:
Trong Python <= 2.5, hãy sử dụng gen.next()
. Điều này sẽ hoạt động cho tất cả các phiên bản Python 2.x, nhưng không phải Python 3.x
Trong Python> = 2.6, sử dụng next(gen)
. Đây là một chức năng được tích hợp sẵn và rõ ràng hơn. Nó cũng sẽ hoạt động trong Python 3.
Cả hai đều gọi một hàm được đặt tên đặc biệt next()
, có thể được ghi đè bằng cách phân lớp con. Tuy nhiên, trong Python 3, hàm này đã được đổi tên thành __next__()
, để phù hợp với các hàm đặc biệt khác.
Đây là cách chính xác để làm điều đó.
Bạn cũng có thể sử dụng next(gen)
.
Để nhận giá trị được liên kết với đối tượng trình tạo trong python 3 trở lên, hãy sử dụng next(<your generator object>)
. các lệnh gọi tiếp theo tới next () tạo ra các giá trị đối tượng liên tiếp trong hàng đợi.
Trong python 3, bạn không có gen.next()
, nhưng bạn vẫn có thể sử dụng next(gen)
. Một chút kỳ lạ nếu bạn hỏi tôi nhưng đó là cách nó.
W1 = params.next()
nhưng gặp lỗiAttributeError: 'generator' object has no attribute 'next'