Идиоматичный код и `EAFP`
Python
Senior
Яндекс
Что означает принцип `EAFP` (Easier to Ask Forgiveness than Permission) в Python и как он проявляется в реальном коде? Противопоставьте его `LBYL`.
Ответы
EAFP vs LBYL
EAFP — «проще попросить прощения, чем разрешения»: сначала делаем операцию, а потом обрабатываем исключение, если что-то пошло не так.
Пример EAFP:
```python
try:
value = mapping[key]
except KeyError:
value = default
```
LBYL (Look Before You Leap):
```python
if key in mapping:
value = mapping[key]
else:
value = default
```
В Python чаще используют EAFP, так как это лучше согласуется с исключениями и многопоточностью (проверка условия может устареть).