Должен ли я проверить if
что-то действительное или просто try
сделать это и поймать исключение?
- Есть ли какая-нибудь надежная документация, в которой говорится, что один способ предпочтительнее?
- Есть еще один способ более питонического?
Например, я должен:
if len(my_list) >= 4:
x = my_list[3]
else:
x = 'NO_ABC'
Or:
try:
x = my_list[3]
except IndexError:
x = 'NO_ABC'
Некоторые мысли ...
PEP 20 говорит:
Ошибки никогда не должны проходить тихо.
Если явно не отключены.
Следует ли интерпретировать использование try
вместо if
как молчаливую ошибку? И если да, то вы явно заставляете его замолчать, используя его таким образом, и, следовательно, все в порядке?
Я не имею в виду ситуации, когда вы можете действовать только одним способом; Например:
try:
import foo
except ImportError:
import baz