Trong Python, định nghĩa về trình tạo được thực hiện với sự trợ giúp của câu lệnh năng suất. Do đó, trước khi chúng ta đi sâu vào chi tiết cụ thể về lợi nhuận thực sự mang lại, điều quan trọng là bạn phải có cái nhìn tổng quan về máy phát điện. Nếu bạn đã tiếp xúc với Python, thì rất có thể bạn đã từng làm việc với các trình tạo Python trước đây. Trình tạo đóng một chức năng quan trọng trong Python. Trong Python, các trình vòng lặp có thể được tạo bằng trình tạo, tuy nhiên quá trình này có dạng hơi khác
Trình tạo Python là các chức năng có thể bị tạm dừng và tiếp tục động và tạo ra một loạt các kết quả. Chúng cũng có thể được sử dụng để tạo số ngẫu nhiên. Trong Python 2. 2, máy phát điện lần đầu tiên được giới thiệu như một tính năng tự chọn. Trong Python 2. 3, chúng được thực hiện bắt buộc. Các hàm tạo trong Python 2. 5 đã được cải thiện rất nhiều, mặc dù thực tế là chúng đã có đủ sức mạnh
Để duy trì khả năng tương thích ngược, việc bổ sung các trình tạo trong Python 2. 2 dẫn đến việc giới thiệu một từ khóa mới gọi là "năng suất". Để sử dụng trình tạo, chúng tôi được yêu cầu nhập chúng từ mô-đun _future_. Khi trình tạo trở thành mặc định trong Python phiên bản 2. 3, điều này đã được thay đổi để phản ánh thực tế là thay đổi không còn cần thiết
Có thể tạm dừng thực thi chức năng bằng cách sử dụng câu lệnh năng suất, sau đó trả về một giá trị cho người gọi trong khi lưu trạng thái của chức năng để tiếp tục sau này. Điều này có nghĩa là toàn bộ trình tạo vẫn có thể được khởi động lại sau khi nhận được giá trị trả về. Việc thực thi hàm được kết thúc bằng câu lệnh return, câu lệnh này cũng trả về một giá trị cho người đã gọi hàm. Chức năng của bạn sẽ không trả về bất cứ điều gì nếu nó bị thiếu
Năng suất Python là gì?
Trong các trình tạo Python, câu lệnh năng suất thay thế cho hàm trả về để trả lại giá trị cho người đã gọi trình tạo mà không loại bỏ bất kỳ biến cục bộ nào. Để hiểu rõ hơn về chức năng mà câu lệnh suất thực hiện trong lập trình Python, trước tiên bạn cần làm quen với trình tạo
Sự khác biệt giữa các hàm tạo và các hàm thông thường là các hàm tạo có câu lệnh "yield" trong định nghĩa của chúng. Điều này bắt đầu với từ khóa "yield", xác định đối tượng trình tạo sẽ được trả lại cho người đã gọi hàm này
Trong Python, một loại hàm cụ thể được gọi là "trình tạo" là một loại hàm, thay vì trả về giá trị dữ liệu cho người đã gọi hàm, thay vào đó, nó trả về một đối tượng trình tạo khác. Việc thực thi chức năng có thể tạm dừng, trạng thái có thể được lưu lại và chức năng có thể được tiếp tục lại sau đó nhờ từ khóa suất
Ví dụ
Hãy xem ví dụ sau -
đầu ra
The number of 'p' in word is: 2
Trả về Python là gì?
Ngược lại với câu lệnh yield, câu lệnh return khiến một hàm kết thúc trong khi chuyển một giá trị trở lại hàm đã gọi nó. Các hàm có bản chất thủ tục hơn không trả lại bất kỳ thứ gì một cách rõ ràng cho người gọi của chúng và thay vào đó trả về một giá trị được gửi lại cho hàm gọi. Mặc dù một hàm có thể có một số câu lệnh trả về, nhưng chỉ một trong số chúng có thể được gọi cho mỗi và mọi lời gọi tương ứng của các câu lệnh đó
Hầu như luôn luôn, một câu lệnh trả về sẽ được đặt ở cuối khối hàm và mục đích của nó là trả về kết quả cuối cùng của việc thực hiện tất cả các câu lệnh có trong hàm đó. Tuy nhiên, một câu lệnh return cũng có thể xuất hiện sớm hơn trong khối chức năng để tạm dừng việc thực hiện tất cả các câu lệnh tiếp theo trong khối đó. Đây sẽ là trường hợp nếu nó được sử dụng để ngăn chức năng được thực thi. Điều này dẫn đến việc thực thi chương trình tại người gọi được khởi động lại ngay lập tức. Loại đối tượng trả về "Không" là tương đương trong Python khi không có giá trị nào được cung cấp cho đối tượng trả về
Ví dụ
Ví dụ sau cho thấy việc sử dụng return trong Python −
đầu ra
Happy Birthday Pradeep
Bảng sau đây nêu bật những khác biệt chính giữa Yield và Return trong Python –
Cơ sở so sánhYieldReturnBasicsTrong hầu hết các trường hợp, bạn sẽ cần sử dụng hàm năng suất để chuyển đổi một hàm Python điển hình thành trình tạo. Trong hầu hết các trường hợp, kết thúc của một thực thi được báo hiệu bằng cách sử dụng từ khóa return, từ khóa này "trả về" kết quả cho câu lệnh đã gọi nó. HàmNó thay thế trả về của hàm để tạm dừng việc thực thi hàm mà không làm mất bất kỳ biến cục bộ nào. Nó thoát khỏi một chức năng và trả về một giá trị cho người gọi nó. Công dụng Khi trình tạo đưa ra kết quả trung gian cho người gọi, người gọi sẽ sử dụng chức năng này. Khi một chức năng được chuẩn bị để truyền đạt một giá trị, nó là cần thiết để sử dụng. Thực thiMã được viết sau câu lệnh năng suất được thực thi trong lệnh gọi hàm sau. Trong khi mã được viết sau câu lệnh return sẽ không được thực thi. CompilationIt có khả năng chạy nhiều lần. Nó chỉ chạy một lần tại một thời điểmPhần kết luận
Câu lệnh yield tạo ra một đối tượng trình tạo và có thể trả về nhiều giá trị cho người gọi mà không kết thúc chương trình, trong khi câu lệnh return được sử dụng để trả về giá trị cho người gọi từ bên trong một hàm và nó kết thúc chương trình. Câu lệnh return được sử dụng để trả về giá trị cho người gọi từ bên trong một hàm