Computer >> Máy Tính >  >> Lập trình >> Python

Từ khóa lợi nhuận trong Python:Hướng dẫn

Cách sử dụng từ khóa lợi nhuận trong Python

Trình tạo không phải là khái niệm trực quan nhất trong Python. Để làm cho vấn đề tồi tệ hơn, họ sử dụng một từ khóa đặc biệt có tên là "năng suất", mặc dù bản thân các máy phát điện là các chức năng. Từ khóa lợi nhuận là gì? Làm thế nào để nó so sánh với một câu lệnh trả lại?

Đó là những câu hỏi hay. Trong hướng dẫn này, chúng tôi nói về câu lệnh lợi nhuận là gì và cách bạn có thể sử dụng nó trong mã của mình. Chúng tôi xem qua một ví dụ về từ khóa lợi nhuận đang hoạt động. Bắt đầu nào!

Chúng tôi khuyên bạn nên đọc các bài viết của chúng tôi về trình tạo và trình tạo Python trước khi tiếp tục. Điều này cung cấp cho bạn một số ngữ cảnh hữu ích mà bạn có thể sử dụng để hiểu thêm về từ khóa lợi nhuận.

Quay lại Kiến thức cơ bản:Trình tạo lặp và Trình tạo

Danh sách được mô tả là các đối tượng có thể lặp lại. Điều này là do bạn có thể xem nội dung của chúng bằng vòng lặp “for”. Mỗi khi vòng lặp thực thi, một mục trong danh sách sẽ được truy cập bởi Python. Từ điển, bộ giá trị và chuỗi cũng là những đối tượng có thể lặp lại.

Một hàm truy cập một mục từ một đối tượng có thể lặp lại được gọi là trình lặp . Hãy tạo một danh sách và lặp lại danh sách đó bằng vòng lặp for:

peppers = ["Scotch Bonnet", "Piri Piri", "Cayenne"]

for p in peppers:
	print(p)
for p in peppers:
	print(p)

Mã này in ra tất cả các loại ớt trong danh sách "ớt" vào bảng điều khiển:

Scotch Bonnet
Piri Piri
Cayenne
Scotch Bonnet
Piri Piri
Cayenne

Chúng tôi sử dụng trình lặp của chúng tôi nhiều lần tùy thích. Trong ví dụ cuối cùng, chúng tôi đã lặp lại đối tượng “Pepper” hai lần.

Trình tạo Python giống như một trình lặp được sử dụng để lặp lại một đối tượng. Có một sự khác biệt lớn:Bạn chỉ có thể lặp lại trên một trình tạo một lần. Trong khi chúng ta có thể lặp lại "ớt" bao nhiêu lần tùy thích, thì một trình tạo chỉ được truy cập một lần.

81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.

Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.

Hãy xác định một máy phát điện cho danh sách ớt của chúng ta:

def print_peppers(peppers):
	for p in peppers:
		yield p

peppers = ["Scotch Bonnet", "Piri Piri", "Cayenne"]
pepper_generator = print_peppers(peppers)

for p in pepper_generator:
	print(p)

Chúng tôi xác định một hàm có tên là print_peppers() . Đây là chức năng máy phát điện của chúng tôi. Nó chấp nhận một đối số:danh sách ớt mà chúng ta muốn in ra bảng điều khiển.

Trong chương trình chính của chúng tôi, chúng tôi gọi print_peppers() và gán nó cho biến Pepper_generator. Tiếp theo, chúng tôi lặp lại trình tạo bằng vòng lặp “for”. Vòng lặp for của chúng tôi gọi đối tượng trình tạo và lặp lại nó.

Hãy chạy mã của chúng tôi:

Scotch Bonnet
Piri Piri
Cayenne

Đầu ra giống như ví dụ đầu tiên của chúng tôi. Sự khác biệt là chúng tôi chỉ có thể lặp lại danh sách của mình một lần. Hãy thử lặp lại trình tạo của chúng tôi một lần nữa:

...
for p in pepper_generator:
	print(p)
for p in pepper_generator:
	print(p)

Mã của chúng tôi trả về:

Scotch Bonnet
Piri Piri
Cayenne

Chúng tôi đã lặp lại trình tạo của mình một lần. Chúng tôi không thể làm điều đó một lần nữa. Đó là lý do tại sao vòng lặp for thứ hai của chúng tôi không trả về bất kỳ giá trị nào.

Từ khóa lợi nhuận trong Python

Lưu ý từ “năng suất” trong ví dụ cuối cùng. Đây là lời nhắc:

def print_peppers(peppers):
	for p in peppers:
		yield p

Từ khóa "lợi nhuận" xuất hiện bên trong hàm của chúng tôi. Nó trả về một giá trị trong một hàm trình tạo. Nó tương tự như từ khóa "trở lại".

Sử dụng lợi nhuận khi bạn muốn tạo một trình tạo mà bạn có thể lặp lại. Trong ví dụ cuối cùng của chúng tôi, chúng tôi sử dụng năng suất để tạo bộ tạo cho danh sách ớt của chúng tôi.

Bất kỳ hàm nào có chứa năng suất sẽ trả về một trình tạo. Chúng tôi thấy điều này bằng cách kiểm tra loại của biến Pepper_generator bằng cách sử dụng type() phương pháp:

<class 'generator'>

Điều này cho chúng ta biết rằng Pepper_generator, được gán cho hàm print_peppers, là một trình tạo.

Kết luận

Từ khóa lợi nhuận trả về một giá trị bên trong trình tạo. Trình tạo là một loại trình lặp đặc biệt mà các giá trị của nó chỉ có thể được lặp lại một lần. Từ khóa sản lượng tương tự như câu lệnh trả về ngoại trừ câu lệnh trả về không thể được sử dụng trong trình tạo.

Bây giờ, bạn đã sẵn sàng sử dụng từ khóa lợi nhuận như Pythonista!