Cách in giá trị năng suất bằng Python

Tất cả chúng ta đã thấy rằng có những câu lệnh trong Python được gọi là năng suất và lợi nhuận. Câu lệnh năng suất chuyển đổi một hàm Python tiêu chuẩn thành trình tạo và người dùng có thể sử dụng câu lệnh return để kết thúc quá trình thực thi, sau đó trả lại đầu ra cho câu lệnh người gọi. Bài viết này sẽ thảo luận về sự khác biệt ngắn gọn giữa hàm tạo & năng suất và hàm trả về trong Python

Tuyên bố lợi nhuận là gì?

Trong Python, năng suất là một từ khóa hoạt động giống như câu lệnh trả về, tạm dừng thực thi hàm và gửi lại giá trị cho người gọi. Câu lệnh năng suất mang hàm Python, trả về giá trị của nó cho người gọi hàm đó và khởi động lại từ nơi nó bị dừng lại

Người dùng có thể gọi câu lệnh năng suất nhiều lần. Khi người dùng gọi một hàm và luồng thực thi gặp từ khóa suất trong hàm đó, thì việc thực thi hàm sẽ tự dừng tại dòng đó

Sau đó, nó trả về một đối tượng trình tạo cho trình gọi hàm đó. Khi hàm Python tiếp tục thực thi, nó sẽ tiếp tục thực thi ngay sau lần chạy năng suất cuối cùng. Nó cho phép mã tạo ra một chuỗi các giá trị theo thời gian cùng một lúc thay vì tính toán chúng và trả về chúng như một danh sách

Mã số

def demo1():
  yield "This is a tutorial on Python."
output = demo1()
for i in output:
    print(i)

đầu ra

Cách in giá trị năng suất bằng Python

Giải trình

Ở đây, năng suất in thông báo được cung cấp cho nó và sẽ lặp lại đối tượng trình tạo

Một ví dụ khác về tuyên bố năng suất như sau

# Here, we are coding a simple Python program to demonstrate the working of yield
def demo1():
   yield "Hey"
   yield "this"
   yield "is"
   yield "Python"
for i in demo1():
   print(I)

đầu ra

Cách in giá trị năng suất bằng Python

Tuyên bố trả lại là gì?

Nói chung, người dùng có thể sử dụng câu lệnh return để kết thúc việc thực hiện chương trình. Nó trả về giá trị cho người gọi. Câu lệnh return trong Python có thể trả về tất cả các lớp giá trị. Khi người dùng không chuyển một biểu thức tới câu lệnh return, câu lệnh return không trả về gì cả

Có thể có nhiều hơn một câu lệnh trả về trong một hàm, nhưng trình thông dịch chỉ gọi một câu lệnh duy nhất cho bất kỳ lệnh gọi hàm cụ thể nào. câu lệnh 'return' chỉ thực thi bên trong một hàm

cú pháp

def fun():
    statements
    .
    .
    return (expression)

Mã số

# Python program to
# use the return statement
def ADD(a, b):
   return a + b
def fun(a):
   # It returns boolean of a
   return bool(a)
# calling function
demo = ADD(5, 8)
print("The Result of the ADD function is {}".format(demo))
demo = fun(10<20)
print("\n The Result of fun function is {}".format(demo))

đầu ra

Cách in giá trị năng suất bằng Python

Giải trình

Trong đoạn mã trên, câu lệnh return trả về hàm ADD bằng cách cộng hai số

Một ví dụ khác về câu lệnh return

class demo: # Here, we are using a Python program to return
# multiple values from a method using class
    def __init__(xyz):
        xyz.str = "Hey, this is Python."
        xyz.x = 15
# The fun function returns an object of the Test
def fun():
    return demo()
t = fun() # Using the Driver code to test the method
print(t.str)
print(t.x)

đầu ra

Cách in giá trị năng suất bằng Python

Trình tạo trong Python là gì?

Trình tạo là các hàm trong Python trả về một đối tượng trình tạo có thể lặp lại. Trình thông dịch tìm nạp từng giá trị từ đối tượng trình tạo thay vì tìm nạp toàn bộ danh sách cùng một lúc và do đó, nếu người dùng muốn lấy giá trị thực, họ có thể sử dụng vòng lặp for với next() hoặc list()

Mã số

Sử dụng chức năng Trình tạo, chúng tôi đang tạo trình tạo

def fun():
    yield "P"
    yield "Y"
    yield "T"
    yield "H"
    yield "O"
    yield "N"
test = fun()
for i in test:
    print(i)

đầu ra

Cách in giá trị năng suất bằng Python

Giải trình

Trong Python, hàm tạo giống như một hàm tổng quát. Nó sẽ bao gồm một từ khóa năng suất thay vì có giá trị trả về. Khi người dùng muốn tạo một hàm tạo, họ cần thêm từ khóa suất

Khi nào nên sử dụng kết quả thay vì câu lệnh trả về trong Python?

Sau đây là những lý do để sử dụng năng suất thay vì lợi nhuận trong Python

  • Nó có thể thúc đẩy mã thực thi nhanh hơn bằng cách sử dụng hàm năng suất và là tùy chọn tốt nhất khi người dùng cần thực thi nhanh hơn trên các tập dữ liệu lớn
  • Khi kích thước dữ liệu lớn, người dùng nên sử dụng năng suất thay vì lợi nhuận
  • Người dùng nên sử dụng năng suất khi họ muốn trả lại một tập hợp lớn các giá trị cho hàm người gọi
  • Một trong những kỹ thuật hiệu quả nhất để trả về dữ liệu là sử dụng thống kê năng suất, vì nó nhanh hơn câu lệnh return trong việc tạo ra dữ liệu lớn hoặc vô hạn

Sự khác biệt giữa năng suất và lợi nhuận

YieldReturnTrong trường hợp năng suất, thời gian thực hiện sẽ nhanh hơn đối với các tập dữ liệu lớn. Thời gian thực hiện của nó nhiều hơn so với năng suất. Trình thông dịch không chiếm bộ nhớ khi người dùng sử dụng từ khóa suất. Trình thông dịch phân bổ bộ nhớ cho giá trị được trả về. Sử dụng năng suất hiệu quả trong khi xử lý các kích thước dữ liệu lớn vì trình thông dịch không sử dụng bộ nhớ. Trả về phù hợp với kích thước dữ liệu nhỏ. Yield trả về một đối tượng trình tạo cho hàm gọi. Trả về trong một hàm xác định kết thúc thực thi hàm Python

Sự kết luận

Trong bài viết này, chúng ta đã thấy các định nghĩa và đoạn mã của các câu lệnh năng suất, lợi nhuận và trình tạo trong Python. Sự khác biệt chính giữa năng suất và lợi nhuận là năng suất trả về hàm trình tạo cho hàm người gọi trong khi return trả về một giá trị cho người gọi đó

Chúng tôi có thể mang lại danh sách bằng Python không?

Từ khóa suất, không giống như câu lệnh trả về, được sử dụng để biến một hàm Python thông thường thành trình tạo . Điều này được sử dụng thay thế cho việc trả lại toàn bộ danh sách cùng một lúc.

Yield có giống như return Python không?

Câu lệnh suất kéo hàm và trả lại giá trị cho trình gọi hàm rồi khởi động lại từ vị trí dừng lại . Câu lệnh suất có thể được gọi nhiều lần. Trong khi câu lệnh return kết thúc việc thực thi hàm và trả lại giá trị cho người gọi.

Làm cách nào để lấy giá trị từ đối tượng trình tạo trong Python?

Để lấy giá trị từ đối tượng trình tạo, gọi phương thức next() trên đối tượng trình tạo hoặc lặp qua đối tượng trình tạo .

Tại sao sử dụng năng suất trong Python?

Chúng ta nên sử dụng yield khi muốn lặp lại một chuỗi nhưng không muốn lưu trữ toàn bộ chuỗi trong bộ nhớ . Năng suất được sử dụng trong trình tạo Python. Một hàm tạo được định nghĩa giống như một hàm bình thường, nhưng bất cứ khi nào nó cần tạo một giá trị, nó sẽ làm như vậy với từ khóa suất thay vì trả về.