Tôi tò mò về sự khác biệt giữa việc sử dụng raise StopIteration
và tuyên bố return
trong máy phát.Sự khác nhau giữa tăng StopIteration và câu lệnh trả về trong máy phát điện là gì?
Ví dụ: có sự khác biệt nào giữa hai hàm này không?
def my_generator0(n):
for i in range(n):
yield i
if i >= 5:
return
def my_generator1(n):
for i in range(n):
yield i
if i >= 5:
raise StopIteration
Tôi đoán càng "pythonic" cách để làm điều đó là cách thứ hai (hãy sửa lại cho tôi nếu tôi sai), nhưng như xa như tôi có thể thấy cả hai cách nâng cao một ngoại lệ StopIteration
.
Explicit hoặc ngầm ('off cuối cùng') 'return' là cách dự định chấm dứt một máy phát điện. Nếu PEP 479 được chấp nhận, phiên bản 'raise StopIteration' sẽ không hoạt động như hiện tại. –