Sự khác biệt giữa lợi nhuận của Python và lợi nhuận của Python

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.

Năng suất Python là gì?

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.

Trả về Python là gì?

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ì.

Sự khác biệt giữa Python Yield và Return

  1. Khái niệm cơ bản liên quan đến lợi nhuận và lợi nhuận của Python

    • 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ộ. 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.
    • 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ó. 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 đó. Tất cả các hàm trả về một giá trị và nếu không có giá trị nào được chỉ định, nó sẽ trả về.
  1. Trình tạo so với Hàm trong Python Yield và Return

    • Câu lệnh năng suất được sử dụng rõ ràng với các trình tạo Python. Về mặt cú pháp, máy phát điện là một hàm có câu lệnh lợi suất. 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.
    • Không giống như một hàm chỉ trả về một lần, các trình tạo có thể dừng thực thi và mang lại kết quả trung gian. Mỗi trình tạo được định nghĩa là một hàm, nhưng thay vì từ khóa return, từ khóa suất được sử dụng bên trong khối hàm để chỉ ra rằng giá trị trả về chỉ là tạm thời và toàn bộ trình tạo có thể được phục hồi ngay cả sau khi lấy được giá trị trả về.
  1. Thực thi Python Yield và Return

    • Câu lệnh return kết thúc việc thực thi một hàm và gửi 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ì. Những gì về cơ bản là thực hiện thoát khỏi một hàm và phá hủy tất cả các giá trị cục bộ trong.
    • Mặt khác, câu lệnh năng suất thay thế giá trị trả về của hàm để tạm dừng thực thi của nó và gửi giá trị trở lại cho người gọi của nó mà không hủy các biến cục bộ. Tuy nhiên, không giống như hàm trả về, năng suất tiếp tục thực hiện hàm từ nơi nó bị tắt.

Python Yield so với Return: Biểu đồ so sánh

Tóm tắt về năng suất và lợi nhuận của Python

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.