Что такое принцип EAFP в Python?


Что подразумевается под" использованием принципа EAFP " в Python? Не могли бы вы привести какие-нибудь примеры?

2 94

2 ответа:

С глоссарий:

легче просить прощения, чем разрешения. Этот общий стиль кодирования Python предполагает существование допустимых ключей или атрибутов и ловит исключения, если предположение оказывается ложным. Этот чистый и быстрый стиль характеризуется наличием многих try и except заявления. Техника контрастирует с стиль LBYL общими для многих других языков, таких как C.

пример была бы попытка получить доступ к ключу словаря.

EAFP:

try:
    x = my_dict["key"]
except KeyError:
    # handle missing key

LBYL:

if "key" in my_dict:
    x = my_dict["key"]
else:
    # handle missing key

версия LBYL должна искать ключ внутри словаря дважды, а также может считаться немного менее читаемой.

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

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