Câu lệnh năng suất được sử dụng để định nghĩa các trình tạo trong Python. Vì vậy, trước khi chúng ta đi vào chính xác năng suất làm gì, chúng ta phải hiểu khái niệm máy phát điện trước. Các trình tạo có một vai trò quan trọng trong Python và nếu bạn đi sâu vào lập trình Python, thì rất có thể bạn đã làm việc với các trình tạo Python. Các trình tạo được sử dụng để tạo các trình vòng lặp trong Python, nhưng với một cách tiếp cận khác.
Trình tạo Python là các hàm tạo ra một chuỗi kết quả và có thể được tạm dừng và tiếp tục lại một cách linh hoạt. Các trình tạo đầu tiên được thêm vào dưới dạng một tính năng tùy chọn trong Python 2.2 và được tạo thành tiêu chuẩn trong Python 2.3. Mặc dù, chúng đủ mạnh, các chức năng của trình tạo đã được tăng cường đáng kể trong Python 2.5.
Khi các trình tạo được thêm lại trong Python 2.2, nó đã giới thiệu một từ khóa mới có năng suất, có khả năng tương thích ngược, mà chúng ta cần nhập các trình tạo từ mô đun _future_ để sử dụng chúng. Điều này đã được thay đổi trong phiên bản Python 2.3 khi các trình tạo trở thành tiêu chuẩn và nó không còn cần thiết nữa.
Câu lệnh năng suất tạm dừng thực thi hàm và gửi lại giá trị cho người gọi, trong khi lưu trạng thái và sau đó tiếp tục nghĩa là toàn bộ trình tạo vẫn có thể được nối lại sau khi nhận được giá trị trả về. Một câu lệnh return kết thúc việc thực thi hàm và gửi một giá trị lại cho người gọi. Không có nó, chức năng của bạn không trả về gì cả. Chúng ta hãy xem xét khi nào nên sử dụng năng suất và khi nào nên sử dụng return trong Python để hiểu rõ hơn về sự khác biệt giữa hai.
Câu lệnh năng suất được sử dụng trong các trình tạo Python để thay thế trả về của hàm để gửi lại giá trị cho người gọi mà không hủy các biến cục bộ. Để hiểu rõ hơn về vai trò của câu lệnh năng suất trong lập trình Python, bạn phải hiểu trình tạo là gì.
Các hàm của trình tạo được tạo ra theo định nghĩa giống như các hàm thông thường nhưng chứa một câu lệnh mang lại năng suất. Điều này bắt đầu với từ khóa năng suất trực tuyến, trong đó chỉ định đối tượng trình tạo được trả về cho người gọi. Trình tạo là một hàm đặc biệt trong Python trả về một đối tượng trình tạo cho người gọi thay vì giá trị dữ liệu. Từ khóa suất có khả năng duy nhất là dừng thực thi chức năng, lưu trạng thái và sau đó tiếp tục.
Câu lệnh return, không giống như câu lệnh lợi suất, thoát ra khỏi hàm, trả lại một giá trị cho người gọi nó. Các hàm trả về một giá trị cho người gọi của chúng và những hàm có tính thủ tục hơn về bản chất không hoàn toàn trả về bất cứ thứ gì. Trong khi một hàm có thể có nhiều câu lệnh return, chỉ một trong số chúng có thể được gọi cho bất kỳ lệnh gọi nào của hàm.
Thông thường, một câu lệnh return xuất hiện ở phần cuối của khối chức năng để trả về kết quả cuối cùng của việc thực thi tất cả các câu lệnh có trong hàm đó. Tuy nhiên, nó cũng có thể xuất hiện sớm hơn trong khối chức năng để dừng thực thi tất cả các câu lệnh tiếp theo trong khối đó. Điều này ngay lập tức tiếp tục thực hiện chương trình tại người gọi. Khi không có giá trị nào được chỉ định, loại đối tượng trả về tương đương trong Python là không có gì.
Về mặt cú pháp, năng suất là một từ khóa có thể được sử dụng giống như từ khóa return, ngoại trừ câu lệnh return kết thúc việc thực thi hàm của bạn và gửi lại một giá trị cho người gọi nó. Chức năng của câu lệnh return là lấy đầu vào và trả lại một cái gì đó cho người gọi. Không giống như trả về, câu lệnh lợi nhuận được sử dụng rõ ràng để xác định các trình tạo, thay thế giá trị trả về của hàm để tạm dừng thực thi của nó giữ nguyên các biến cục bộ, trong khi câu lệnh return hủy tất cả các biến cục bộ bên trong.