Khi đánh giá tiêu cực trong mệnh đề if sẽ gây ra một cuộc gọi return
bên trong một hàm/phương pháp, được đề xuất trong Python, để lồng các mệnh đề hoặc sử dụng đánh giá nghịch đảo và gọi hàm trở về? ví dụ .:Làm tổ nếu các mệnh đề so với kết quả phân tầng theo yêu cầu
if required_condition_1:
if required_condition_2:
if required_condition 3:
pass
return 'error for condition 3'
return 'error for condition 2'
return 'error for condition 1'
Hoặc:
if not required_condition_1:
# preparation...
return 'error for condition 1'
if not required_condition_2:
# preparation...
return 'error for condition 2'
if not required_condition_3:
# preparation...
return 'error for condition 3'
# if runtime reaches this point it means that it has passed all conditions
Hãy tưởng tượng bạn phải đăng ký một người sử dụng, và bạn cần điều kiện khác nhau để được thỏa mãn. Người dùng sẽ chỉ được đăng ký nếu tất cả đều hài lòng, nhưng thông báo lỗi phụ thuộc vào điều kiện nào không thành công.
Tôi đoán là trong các trường hợp khác, như người dùng đề cập trong phần câu trả lời, các hành động khác có thể áp dụng nếu một điều kiện nhất định không thành công. Sau đó, tôi nghĩ rằng tôi nên làm tổ ifs. Tuy nhiên, tôi sẽ chỉ trả về một thông báo lỗi, vì vậy tôi nghĩ tùy chọn thứ hai là thích hợp hơn.
Tôi cũng đã nghĩ đến việc khẳng định:
try:
assert(required_condition_1)
try:
assert(required_condition_2)
# do tasks
except AssertionError:
# error for condition 2
except AssertionError:
# error for condition 1
Mặc dù tôi nghĩ rằng cách cuối cùng này là không đẹp recommendable như trong điều trị ngoại lệ. Cũng như một người sử dụng SO mentions:
Nếu mã là đúng, chặn rối loạn đơn kiện, lỗi phần cứng và như vậy, không khẳng định sẽ không bao giờ thất bại. Đó là lý do tại sao hành vi của chương trình cho người dùng cuối không được bị ảnh hưởng. Đặc biệt, một khẳng định không thể thất bại ngay cả trong điều kiện đặc biệt có lập trình. Nó chỉ không bao giờ xảy ra. Nếu điều đó xảy ra, lập trình viên nên được zapped cho nó.
Tôi biết điều này có vẻ chủ yếu dựa vào ý kiến , nhưng đối với tôi nó là không vì tất cả các ngôn ngữ có hướng dẫn phong cách tạo ra một môi trường bền vững hơn, khả năng mở rộng và có thể đọc được tùy thuộc vào đặc điểm và chức năng của nó. Tôi muốn biết nếu có một cách được đề nghị để xử lý vấn đề này bên trong phương pháp và quan trọng nhất, tại sao.
Dựa trên thực tế là mã nên có một số "địa phương", tôi đoán đoạn mã thứ hai dễ đọc hơn. Nhưng điều này giữ trong * bất kỳ * ngôn ngữ. –