EAFP (проще просить прощения, чем разрешения):

EAFP говорит, что мы пишем наш код и предполагаем, что он работает правильно. Используя EAFP, мы не проверяем никаких условий перед написанием нашего кода; поместите «обработчик исключений» после операторов нашего кода, иначе он может не сработать и возникнет ошибка.

person = {
"name": "ali",
"age": None
}
# EAFP: Easier to Ask Forgiveness than Permission.
try:
    if person.get("age") < 10:
        print("little man!")
except Exception as error:
    logger.error(error)

В этом примере мы предполагаем, что блок try работает правильно. Но поставьте обработчик исключений, который регистрирует ошибку, если она возникает. в этом коде age is None и будет напечатаноERROR:__main__:unorderable types: NoneType() < int().

LBYL (посмотри, прежде чем прыгать):

Перед написанием операторов кода нам нужно проверить условия; если условия соблюдены, наш код будет работать, и мы не будем обрабатывать исключения.

person = {
"name": "ali",
"age": None
}
# LBYL: Look Before You Leap.
if person.get("age"):
    if person.get("age") < 10:
        print("little man!")
print("hello there")

Результатом будет `hello there`

Помните, что явное лучше, чем неявное. Итак, Python побуждает нас следовать EAFP, и это законный стиль кодирования в Python.

Ресурсы: