Giải thích
Iterator là một đối tượng trong python thực hiện giao thức lặp. Các bộ dữ liệu, danh sách, bộ được gọi là trình vòng lặp có sẵn trong Python. Có hai loại phương thức trong giao thức lặp.
__iter __ (): Phương thức này được gọi khi chúng ta khởi tạo một trình lặp và điều này phải trả về một đối tượng bao gồm phương thức next () hoặc __next __ () (trong Python 3).
next () hoặc __next __ () (trong Python 3): Phương thức này sẽ trả về phần tử tiếp theo từ một chuỗi lặp. Khi một trình lặp được sử dụng với vòng lặp for, vòng lặp for sẽ gọi trực tiếp hàm next () trên đối tượng trình vòng lặp.
Mã mẫu
# creating a custom iterator class Pow_of_Two: def __init__(self, max = 0): self.max = max def __iter__(self): self.n = 0 return self def __next__(self): if self.n <= self.max: result = 2 ** self.n self.n += 1 return result else: raise StopIteration("Message") a = Pow_of_Two(4) i = iter(a) print(i.__next__()) print(next(i)) print(next(i)) print(next(i)) print(next(i)) print(next(i))
Đầu ra
1 2 4 8 16 StopIteration error will be raised