Чи слід перевірити if
щось дійсне або просто try
зробити це і зробити виняток?
- Чи є якась обґрунтована документація, яка говорить про те, що кращим є один із способів?
- Чи один із способів більш пітонічний ?
Наприклад, чи слід:
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 говорить:
Помилки ніколи не повинні проходити мовчки.
Якщо явно мовчати.
Чи слід інтерпретацію try
замість if
інтерпретувати як помилку, що проходить безшумно? І якщо так, чи ви явно замовчуєте його, використовуючи таким чином, таким чином, роблячи це нормально?
Я не маю на увазі ситуацій, коли ти можеш робити речі лише 1 спосіб; наприклад:
try:
import foo
except ImportError:
import baz
if index in mylist
тести з індексом - це елемент мого списку, а не можливий індекс. Ви б хотілиif index < len(mylist)
замість цього.