[Tự Học Python] Khi Nào Nên Sử Dụng Câu Lệnh Yield Thay ... - Cafedev
Có thể bạn quan tâm
🔥CHỌN LỌC TOP NHỮNG KHOÁ HỌC LẬP TRÌNH ONLINE NHIỀU NGƯỜI THEO HOC TẠI ĐÂY🔥
Câu lệnh yield sẽ đình chỉ việc thực thi của hàm và trả về một giá trị cho caller – đối tượng gọi hàm, nhưng vẫn giữ lại đầy đủ trạng thái của hàm để ngay sau khi thực thi xong câu lệnh yield, hàm vẫn có thể quay lại thực thi tiếp được tại câu lệnh tiếp theo nằm ngay sau câu lệnh yield vừa chạy xong. Điều này cho phép một hàm có thể trả về một loạt các giá trị theo thời gian, thay vì phải tính toán cùng một lúc ra nhiều outputs rồi đưa tất cả chúng vào trong một list (danh sách) và trả về duy nhất list đó.
Dưới đây là ví dụ mô tả hoạt động của câu lệnh yield:
# ----------------------------------------------------------- #Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam #@author cafedevn #Contact: [email protected] #Fanpage: https://www.facebook.com/cafedevn #Instagram: https://instagram.com/cafedevn #Twitter: https://twitter.com/CafedeVn #Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ # ----------------------------------------------------------- # A Simple Python program to demonstrate working # of yield # A generator function that yields 1 for the first time, # 2 second time and 3 third time def simpleGeneratorFun(): yield 1 yield 2 yield 3 # Driver code to check above generator function for value in simpleGeneratorFun(): print(value)Kết quả in ra là:
1 2 3Câu lệnh return sẽ trả về duy nhất một giá trị cụ thể cho caller của nó, trong khi câu lệnh yield có thể trả về một loạt các giá trị. Chúng ta nên sử dụng câu lệnh yield khi muốn lặp qua một kiểu dữ liệu dạng chuỗi/dãy/danh sách để xử lý và tạo ra các kết quả, mà không muốn phải lưu trữ toàn bộ các giá trị kết quả trong bộ nhớ (tức là tính ra được kết quả nào thì trả về luôn chứ không cần phải lưu lại kết quả tại mỗi lần xử lý vào một mảng/danh sách– gây tốn bộ nhớ).
Câu lệnh yield thường được sử dụng trong các generator functions (hàm tạo) của ngôn ngữ Python. Các generator functions được khai báo giống như hàm bình thường, nhưng mỗi khi nó cần tạo ra/sinh ra/trả về một giá trị, nó sẽ thực hiện điều đó bằng từ khóa yield thay vì return. Nếu bên trong phần thân hàm của một hàm được khai báo bằng từ khóa def có chứa câu lệnh yield, hàm này sẽ tự động trở thành một hàm tạo – generator function.
# ----------------------------------------------------------- #Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam #@author cafedevn #Contact: [email protected] #Fanpage: https://www.facebook.com/cafedevn #Instagram: https://instagram.com/cafedevn #Twitter: https://twitter.com/CafedeVn #Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/ # ----------------------------------------------------------- # A Python program to generate squares from 1 # to 100 using yield and therefore generator # An infinite generator function that prints # next square number. It starts with 1 def nextSquare(): i = 1; # An Infinite loop to generate squares while True: yield i*i i += 1 # Next execution resumes # from this point # Driver code to test above generator # function for num in nextSquare(): if num > 100: break print(num)Kết quả in ra là:
1 4 9 16 25 36 49 64 81 100Nguồn và Tài liệu tiếng anh tham khảo:
- w3school
- python.org
- geeksforgeeks
Tài liệu từ cafedev:
- Full series tự học Python từ cơ bản tới nâng cao tại đây nha.
- Ebook về python tại đây.
- Các series tự học lập trình khác
Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:
- Group Facebook
- Fanpage
- Youtube
- Trang chủ
Chào thân ái và quyết thắng!
Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!
Từ khóa » Câu Lệnh Return Trong Python
-
Return Trong Python: Cách Sử Dụng Và Các Phương Pháp Sử ... - T3H
-
Return Trong Python Và Giá Trị Trả Về
-
Câu Lệnh Return Trong Python | Lập Trình Từ Đầu
-
Python: Câu Lệnh Return Trong Python: Cách Sử Dụng Và Các Phương ...
-
Return Trong Python Là Gì? - Programming - Dạy Nhau Học
-
Kiểu Dữ Liệu Function Trong Python - Return
-
Kiểu Dữ Liệu Function Trong Python - Return | How Kteam
-
Hàm Trong Python Là Gì? Các Hàm Trong Python
-
Hàm Trong Python | TopDev
-
Python - Làm Thế Nào để Sử Dụng Câu Lệnh Return Trong Vòng Lặp For?
-
Hàm Trong Python Là Gì?
-
Chi Tiết Bài Học 10.Hàm Trong Python - Vimentor
-
[Tự Học Python] Khi Nào Nên Sử Dụng Câu Lệnh Yield Thay ...
-
Khái Niệm Về Hàm Trong Python - TEK4