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',
- 1. Jaka jest zasada debugowania?
- 2. Jaka jest zwykle zasada nazewnictwa w clojure?
- 3. Wyjątki w Pythonie: EAFP i co jest naprawdę wyjątkowe?
- 4. Jaka jest zasada nazwania za częściami Rails?
- 5. Jaka jest zasada "Time Travel Debugger"?
- 6. Jaka zasada ma zastosowanie "zastosuj (zasada)" lub "dowód"?
- 7. W SOLID, jaka jest różnica między SRP i ISP? (Zasada pojedynczej odpowiedzialności i zasada podziału interfejsu)
- 8. Jaka jest równoważność w Pythonie 3 liter w Pythonie 2?
- 9. Jaka jest najlepsza metoda w Pythonie?
- 10. Jaka jest złożoność czasu w dict.keys() w Pythonie?
- 11. Jaka jest różnica między metodami len() i sys.getsizeof() w pythonie?
- 12. Jaka jest różnica między "()" i "[]" podczas generowania w Pythonie?
- 13. Jaka jest różnica między modułem a skryptem w Pythonie?
- 14. Jaka jest różnica między plikami Pyc i Pyo w Pythonie?
- 15. Jaka jest wartość zwracana przez Socket.accept() w pythonie
- 16. Jaka jest różnica między% i% d w Pythonie?
- 17. Jaka jest różnica między modułami Unittest i unittest2 w Pythonie?
- 18. Jaka jest różnica między funkcjami json.load() i json.loads() w Pythonie?
- 19. Jaka jest optymalna konwencja nazewnictwa dla plików testowych w Pythonie?
- 20. Jaka jest różnica między ** kwargs i dict w Pythonie 3.2?
- 21. Jaka jest różnica między literałem a zmiennymi w Pythonie?
- 22. Jaka jest różnica między int() i floor() w Pythonie 3?
- 23. W Pythonie, jaka jest referencyjna liczba cyklicznych odniesień i dlaczego?
- 24. Zasada funkcji wirtualnych w C++
- 25. Jaka jest funkcja SOCK_STREAM?
- 26. Zasada najlepszych zasad
- 27. Wymóg lub zasada nieważności
- 28. Co to jest zasada "no-string-literal" w tslint?
- 29. Jaka jest reguła porządku wielu zmiennych typu w haskell?
- 30. Jaka zasada deklaruje metoda w Obj-c? Czy mogę użyć metody bez deklaracji?
Nie według Guido: https://mail.python.org/pipermail/python-dev/2014-March/133118.html –