Return VS Yield trong Python — Truyện tranh ngắn

Và vấn đề này trở nên tồi tệ hơn khi chúng tôi xử lý nhiều dữ liệu hơn. Nếu có 1000 người xếp hàng thì sao?
Từ khóa 'trở về'
def add10(x):
return x
x = add10(4) # x = 14
def get_takoballs(orders):
output = []
for order in orders:
output.append(f'{order} takoballs')
return output
y = get_takoballs([4,6,8])
# y = ['4 takoballs', '6 takoballs', '8 takoballs']
Từ khóa 'năng suất'
Giống như return
từ khóa, yield
từ khóa biểu thị đầu ra của hàm.
Tuy nhiên, không giống như return
từ khóa, một hàm có thể có yield
nhiều đầu ra. Từ yield
khóa không dừng toàn bộ chức năng sau khi chạy.
def testfunction():
yield 4
yield 5
yield 6
for n in testfunction():
print(n)
# 4
# 5
# 6
def get_takoballs(orders):
for order in orders:
yield f'{order} takoballs'
for food in get_takoballs([4, 6, 8]):
print(food)
# 4 takoballs
# 6 takoballs
# 8 takoballs
Giả sử chúng ta có 10000 khách hàng trong quầy tako (thay vì chỉ 3).
orders = # a list containing 10000 orders
def return_stall(orders):
# process all 10000 orders first
# then output all 10000 processed orders
output = []
for order in order:
output.append(f'{order} takoballs')
return output
def yield_stall(orders):
# process 1 order, then output it
# repeat til all 10000 orders are completed
for order in orders:
yield f'{order takoballs}'
Đối với yield_stall
chức năng này, mỗi đơn đặt hàng được đưa ra (được trao cho khách hàng) ngay sau khi chúng được xử lý. Thằng thứ nhất chỉ cần chờ lệnh của nó và duy nhất của nó là xong.
Phần kết luận
Nếu bạn đang xử lý một lượng dữ liệu lớn, hãy cân nhắc sử dụng hàm tạo (hàm sử dụng yield
) để tăng tốc mọi thứ. Hy vọng điều này là rõ ràng và hữu ích!
Vài lời cuối cùng
Nếu câu chuyện này cung cấp giá trị và bạn muốn thể hiện một chút hỗ trợ, bạn có thể:
- Vỗ tay 50 lần cho câu chuyện này (điều này thực sự, thực sự giúp ích cho tôi)
- Đăng ký thành viên Phương tiện bằng liên kết của tôi ($5/tháng để đọc các câu chuyện trên Phương tiện không giới hạn)
Tăng cấp mã hóa
Cảm ơn vì đã là một phần của cộng đồng của chúng tôi! Trước khi bạn đi:
- Vỗ tay cho truyện và theo dõi tác giả
- Xem thêm nội dung trong ấn phẩm Level Up Coding
- Khóa học phỏng vấn mã hóa miễn phí ⇒ Xem khóa học
- Theo dõi chúng tôi: Twitter | LinkedIn | bản tin