Tôi là một fan hâm mộ lớn của Python for...else syntax - thật đáng ngạc nhiên về mức độ thường xuyên áp dụng và cách hiệu quả để đơn giản hóa mã.Sử dụng cho ... else trong máy phát điện Python
Tuy nhiên, tôi đã không tìm ra một cách tốt đẹp để sử dụng nó trong một máy phát điện, ví dụ:
def iterate(i):
for value in i:
yield value
else:
print 'i is empty'
Trong ví dụ trên, tôi muốn tuyên bố print
được thực hiện chỉ khi i
trống. Tuy nhiên, vì else
chỉ tôn trọng break
và return
, nó luôn được thực hiện, bất kể độ dài i
.
Nếu không thể sử dụng for...else
theo cách này, cách tiếp cận tốt nhất cho điều này sao cho câu lệnh print
chỉ được thực hiện khi không có gì được mang lại?
trả về được ngụ ý ở cuối máy phát. Không cần phải bao gồm nó. – recursive
Tôi đã nghĩ vậy, nhưng tôi nghĩ tôi sẽ để nó rõ ràng ở đây. – Triptych
+1: "in i trống" là vấn đề của người khác, không phải của máy phát. –