Trong python có khái niệm lặp qua các vùng chứa. Trình lặp có hai chức năng riêng biệt. Sử dụng các hàm này, chúng ta có thể sử dụng các lớp do người dùng định nghĩa để hỗ trợ lặp lại. Các hàm này là __iter __ () và __next __ () .
Phương thức __iter __ ()
Phương thức __iter __ () trả về đối tượng trình vòng lặp. Nếu một lớp hỗ trợ các kiểu lặp khác nhau, thì một số phương thức khác có thể ở đó để thực hiện một số tác vụ khác.
Phương thức __next __ ()
Phương thức __next __ () trả về phần tử tiếp theo từ vùng chứa. Khi mục hoàn tất, nó sẽ nâng StopIteration ngoại lệ.
Mã mẫu
class PowerIter: #It will return x ^ x where x is in range 1 to max def __init__(self, max = 0): self.max = max #Set the max limit of the iterator def __iter__(self): self.term = 0 return self def __next__(self): if self.term <= self.max: element = self.term ** self.term self.term += 1 return element else: raise StopIteration #When it exceeds the max, return exception powIterObj = PowerIter(10) powIter = iter(powIterObj) for i in range(10): print(next(powIter))
Đầu ra
1 1 4 27 256 3125 46656 823543 16777216 387420489