Mọi người cho mình hỏi, đến giờ mình vẫn bị nhầm lẫn các khái niệm này cho chưa hiểu tiếng anh nên đọc tài liệu tiếng anh bằng translate thì nó hay bị dịch không đúng nghĩa nên rối, mà tài liệu tiếng việt mỗi page nói một kiểu, mình thực sự là quá khó hiểu, tìm hiểu mấy tối rồi mà vẫn chưa rõ. Mình giải thích lại theo ý hiểu của mình rồi mọi người giúp đỡ mình xem có sai sót chỗ nào không mn nhé. Xin cảm ơn
-
Iterable:
- Là một đối tượng cho phép lấy từng phần tử của nó với vòng lặp
- Có thể dùng iter() để trả về một iterator
-
Iterator:
Là một kiểu dữ liệu đã có sẵn, khi Print(type()) sẽ cho thấy nếu nó là Iterator- Không có index nên không thể lấy phần tử theo ý
- Có thể dùng Next() để lấy từng phần tử
- Trả về StopIteration khi đã gọi hết giá trị
-
Generator (Là một hàm):
- Giống một hàm bình thường nhưng khác ở chỗ là có yield để trả về từng phần tử (yield có tác dụng cho ra các giá trị có thể sử dụng next() hoặc for loop)
- Khi chạy cho ra 1 Generator Iterator
-
Generator Iterator: (Trong Docs python chỉ ghi: “An object created by a generator” nên mình đoán")
Khi chạy Generator, việc trả về từng phần tử bằng for loop hoặc next(), trả về StopIteration khi next hết giá trị và việc k có index đã khiến nó trở thành 1 Iterator, và được khởi tạo bởi Generator nên nó được gọi là 1 Generator Iterator