Nếu bạn đọc kỹ một số phương pháp chính thức, bạn nên làm điều này.
Xác định hậu điều kiện
isMale && doGuyStuff || isFemale && doGirlStuff.
Rút ra một số báo cáo ứng cử viên đó sẽ dẫn đến bài tình trạng này
if isMale: doGuyStuff
Đó provably dẫn đến một số hậu điều kiện
if isFemale: doGirlStuff
Điều đó có thể dẫn đến một số tình trạng sau
Lưu ý rằng đơn đặt hàng không quan trọng. Thật vậy, nó đơn giản hơn nếu bạn loại bỏ bất kỳ giả định đặt hàng nào.
Bạn gió lên với những điều sau:
if isMale: doGuyStuff
elif isFemale: doGirlStuff
Lưu ý rằng không có sử dụng hợp lý cho một khoản else
. Bạn sẽ không bao giờ - trong một dẫn xuất chính thức - lấy một mệnh đề else
. Bạn sẽ luôn có các điều kiện là những tuyên bố tích cực: a && b || c && d
các loại sự vật. Hiếm khi nó sẽ là a && b || !a && c
, nhưng thậm chí sau đó, bạn thường bị gió với điều kiện rõ ràng !a
.
Chính thức, mệnh đề "không thể khác" nên được giới hạn để thực hiện một việc như sau.
if isMale: doGuyStuff
elif isFemale: doGirlStuff
else:
raise HorrifyingSituationError
Nếu bạn đã từng đưa ra HorrifyingSituationError, điều đó có nghĩa là bạn đã thực hiện sai phép toán và trích xuất không chính xác các câu lệnh từ các điều kiện. Hoặc bạn đã xác định không chính xác tình trạng sau ở nơi đầu tiên.
Dù bằng cách nào, chương trình được thiết kế sai một cách sâu sắc và tuyệt đối. Nói chung, đây không phải là một bất ngờ. Nó thường thất bại ngoạn mục trong lần đầu tiên bạn thử kiểm tra nó. Trừ khi (vì nó thường xảy ra), bạn đã chọn dữ liệu thử nghiệm phản ánh các lỗi trong định nghĩa ban đầu của bạn về điều kiện sau. Thậm chí sau đó, một khi bạn gặp phải ngoại lệ này, bạn có thể dễ dàng theo dõi nó và sửa chữa nó vĩnh viễn.
Nguồn
2010-03-19 01:28:29
Never say never: Tôi đọc một câu chuyện mới đây về một người Down Under với một tình huống không xác định 'Down Under', người đã kiến nghị thành công cho chỉ định giới tính chính thức của 'không được chỉ định' –
Yep. Nếu bạn đang làm việc cho Tổng điều tra năm 2010, xử lý, không ném, nam, nữ, và khác. Đối với các tình huống khác và enums khác, thời gian cần để hỏi là tốt hơn dành viết "ném". – Potatoswatter
Giới tính không thực sự là 0 (nữ) hoặc 1 (nam), phạm vi của nó là từ 0.0 đến 1.0. Trong thực tế, điều đó có thể sai, giới tính là một số phức ở đâu đó giữa i, i^2, và 7. – Juliet