Co oznacza "używanie zasady EAFP" w Pythonie? Czy możesz podać jakieś przykłady?Jaka jest zasada EAFP w Pythonie?
Odpowiedz
Z glossary:
Łatwiej prosić o przebaczenie niż pozwolenie. Ten wspólny styl kodowania Python zakłada istnienie ważnych kluczy lub atrybutów i wyjątków odłowu, jeśli założenie okaże się fałszywe. Ten czysty i szybki styl charakteryzuje się obecnością wielu oświadczeń
try
iexcept
. Technika kontrastuje z popularnym dla wielu innych języków, takim jak C.
Przykładem może być próba dostępu do klucza słownika.
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
Wersja LBYL musi szukać klucza wewnątrz słowniku dwa razy, a może być również uznane za nieco mniej czytelny.
Krótki z ładnymi przykładami. –
Ulepszeniem byłoby to, że kolejną zaletą jest unikanie warunków wyścigu ... np. Po prostu spróbuj otworzyć plik, a jeśli go zdobędziesz, masz go. Zamiast widzieć *, jeśli możesz go zdobyć *, a potem próbujesz go zdobyć i uświadomić sobie, że w minimalnym czasie między sprawdzaniem i dostępem do niego, możesz go dostać. –
Python zapewnia również sposób uniknięcia obu tych sytuacji, jeśli przewodnik po prostu przypisuje wartość domyślną do 'x', gdy klucz nie istnieje:' x = mydict.get ('klucz') 'zwróci' Brak 'jeśli' 'klucz'' nie znajduje się w' my_dict'; możesz również zrobić '.get ('key',
Nie według Guido: https://mail.python.org/pipermail/python-dev/2014-March/133118.html –