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.
Ресурсы: