ฉันควรทดสอบif
สิ่งที่ถูกต้องหรือเพียงtry
เพื่อทำและตรวจจับข้อยกเว้น?
- มีเอกสารประกอบที่ระบุว่าควรใช้วิธีเดียวหรือไม่?
- pythonicทางเดียวมากกว่าหรือไม่?
ตัวอย่างเช่นฉันควร:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
หรือ:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
ความคิดบางอย่าง ...
PEP 20พูดว่า:
ข้อผิดพลาดไม่ควรผ่านไปอย่างเงียบ ๆ
เว้นแต่จะปิดเสียงไว้อย่างชัดเจน
ควรใช้ a try
แทนการif
ตีความว่าเป็นข้อผิดพลาดที่ผ่านไปอย่างเงียบ ๆ หรือไม่? และถ้าเป็นเช่นนั้นคุณจะปิดเสียงโดยใช้วิธีนี้อย่างชัดเจนหรือไม่
ฉันไม่ได้หมายถึงสถานการณ์ที่คุณสามารถทำได้เพียง 1 ทางเท่านั้น ตัวอย่างเช่น:
try:
import foo
except ImportError:
import baz
if index in mylist
การทดสอบดัชนี wether เป็นองค์ประกอบของ mylist ไม่ใช่ดัชนีที่เป็นไปได้ คุณจะต้องการif index < len(mylist)
แทน