Tôi hơi bị mất trên các trình lặp vòng python. Tôi thỉnh thoảng sử dụng chúng, nhưng tôi không nhớ mình đã tự tạo ra một bản thân. Tôi đọc từ một nơi nào đó tôi không nhớ ở đâu, một mã như thế này:Các phương thức lớp lặp là gì tiếp theo() và __next __() cho, và sự khác biệt là gì?
class Foo(object):
def __init__(self):
self.something = "initial_value"
def __iter__(self):
return self
def next(self):
# I don't quite remember what was here :S
return self.something
Tôi đoán __iter__()
phương pháp phải trả về một iterator, và iterator rằng cần phải có một phương pháp ngay bên cạnh? Sau đó, phương pháp __next__()
là gì? là nó cho trực tiếp iterating qua một lớp mà không có nó trở về một iterator với __iter__()
phương pháp?
** foo ** là một trình lặp. Trong trường hợp này, nó đơn giản trả về chính nó. Một đối tượng có thể hỗ trợ lặp lại, nhưng không phải là một trình lặp. – Wes
cảm ơn, đã sửa mã. – yasar