Haruskah saya menguji if
sesuatu yang valid atau hanya try
untuk melakukannya dan menangkap pengecualian?
- Apakah ada dokumentasi kuat yang mengatakan bahwa satu cara lebih disukai?
- Apakah satu cara lebih pythonic ?
Misalnya, haruskah saya:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
Atau:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
Beberapa pemikiran ...
PEP 20 mengatakan:
Kesalahan tidak boleh lewat diam-diam.
Kecuali dibungkam secara eksplisit.
Haruskah menggunakan a try
alih - alih an if
diartikan sebagai kesalahan lewat diam-diam? Dan jika demikian, apakah Anda secara eksplisit membungkamnya dengan menggunakannya dengan cara ini, sehingga membuatnya oke?
Saya tidak mengacu pada situasi di mana Anda hanya dapat melakukan sesuatu dengan 1 cara; sebagai contoh:
try:
import foo
except ImportError:
import baz
if index in mylist
menguji apakah indeks adalah elemen dari mylist, bukan indeks yang mungkin. Anda justru menginginkannyaif index < len(mylist)
.