Tôi đã bắt gặp thành ngữ này trong một số Python nguồn mở, và tôi nghẹn ngào với đồ uống của mình.Đây có phải là thành ngữ pythonic? (someBool và "True Result" hoặc "False Result")
Thay vì:
if isUp:
return "Up"
else:
return "Down"
hoặc thậm chí:
return "Up" if isUp else "Down"
mã đọc:
return isUp and "Up" or "Down"
tôi có thể thấy đây là kết quả tương tự, nhưng đây là một thành ngữ điển hình bằng Python? Nếu vậy, nó là một số hack hiệu suất chạy nhanh? Hay nó chỉ là một lần một lần cần xem xét mã?
Cú pháp thay thế không có sự khác biệt đối với toán tử và/hoặc toán tử bậc ba - cả hai giá trị luôn được đánh giá. Không phải là một vấn đề lớn nếu chúng chỉ là các biến, nhưng nếu có các cuộc gọi hàm (đặc biệt là với các hiệu ứng phụ) trong đó, nó sẽ tạo ra sự khác biệt. – Brian