Python Tạo lặp lại
Tạo một Trình lặp lại
Để tạo một đối tượng / lớp như một trình vòng lặp, bạn phải triển khai các phương thức
__iter__()
và
__next__()
đối tượng của mình.
Như bạn đã học trong chương Lớp / Đối tượng trong Python , tất cả các lớp đều có một hàm được gọi
__init__()
, cho phép bạn thực hiện một số khởi tạo khi đối tượng đang được tạo.
Phương __iter__()
thức này hoạt động tương tự, bạn có thể thực hiện các hoạt động (khởi tạo, v.v.), nhưng phải luôn trả về chính đối tượng trình lặp.
Phương __next__()
thức này cũng cho phép bạn thực hiện các thao tác và phải trả về mục tiếp theo trong chuỗi.
Thí dụ
Tạo một trình lặp trả về các số, bắt đầu bằng 1 và mỗi chuỗi sẽ tăng thêm một (trả về 1,2,3,4,5, v.v.):
class MyNumbers:
def __iter__(self):
self.a =
1
return self
def __next__(self):
x = self.a
self.a += 1
return x
myclass = MyNumbers()
myiter = iter(myclass)
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))
print(next(myiter))