2010-03-10 40 views

Trả lời

82

Vâng, hoặc next(gen) trong 2.6+.

39

Trong Python < = 2.5, sử dụng gen.next(). Điều này sẽ làm việc 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 tích hợp và rõ ràng hơn. Nó cũng sẽ hoạt động trong Python 3.

Cả hai kết thúc đều gọi một hàm được đặt tên đặc biệt, next(), có thể bị ghi đè bởi 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 chức năng đặc biệt khác.

1

Trong python 3 bạn không có gen.next(), nhưng bạn vẫn có thể sử dụng (gen) tiếp theo. Một chút kỳ lạ nếu bạn hỏi tôi nhưng đó là cách nó được.

2

Sử dụng (đối với python 3)

next(generator) 

Dưới đây là một ví dụ

def fun(x): 
    n = 0 
    while n < x: 
     yield n 
     n += 1 
z = fun(10) 
next(z) 
next(z) 

nên in

0 
1 
Các vấn đề liên quan