在Python中,「使用EAFP原理」的含義是什麼?你能提供任何例子嗎?Python中的EAFP原理是什麼?
回答
從glossary:
更容易請求原諒比許可。這種常見的Python編碼風格假定存在有效的鍵或屬性,並且如果假設證明是錯誤的,則捕獲異常。這種乾淨而快速的風格的特點是存在許多
try
和except
陳述。該技術與許多其他語言(例如C)共用的LBYL style形成對比。
一個示例是嘗試訪問字典密鑰。
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版本有搜索的字典裏面的鍵兩次,也可能略少可讀性考慮。
簡短的很好的例子。 – 2012-07-06 11:12:09
一個增強將是另一個優點是避免競爭條件...例如,只是嘗試打開一個文件,如果你得到它,你明白了。而不是看到*,如果你能得到它*,然後試圖得到它,並意識到在檢查和訪問試圖之間的極小時間內,你可以更長時間地獲得它。 – 2012-07-06 12:17:05
Python還提供了一種避免這兩種情況的方法,如果處理程序僅在鍵不存在時爲'x'分配默認值:'x = mydict.get('key')'將返回None '如果'key'不在'my_dict'中;你也可以執行'.get('key',
- 1. LOADDLL.EXE的原理是什麼?
- 2. PHP中的工作原理是什麼?
- 3. random.random()在python中的工作原理是什麼?
- 4. EnableEventValidation的用途是什麼?它的工作原理是什麼?
- 5. python any()函數的工作原理是什麼?
- 6. SwingWorker的基本原理是什麼?
- 7. CMake的工作原理是什麼?
- 8. @ProxyCodeSplit它的工作原理是什麼?
- 9. URLClassLoader的工作原理是什麼? java
- 10. 阻塞模式的原理是什麼?
- 11. 設計ServicePointManager.ServerCertificateValidationCallback的原理是什麼?
- 12. 這裏面的原理是什麼?
- 13. AsParallel的工作原理是什麼?
- 14. MaxTenuringThreshold - 它的工作原理是什麼?
- 15. Tapestry mixin的工作原理是什麼?
- 16. Ruby解析器的原理是什麼?
- 17. 內部分機的原理是什麼?
- 18. LBYL vs EAFP在Java中?
- 19. 什麼是VertiPaq及其工作原理
- 20. 爲什麼不是這個Python pythagorean定理求解器的工作原理?
- 21. 接口隔離原理背後的原因是什麼?
- 22. 什麼是原子?
- 23. 是什麼原因
- 24. 原子是什麼?
- 25. Python請求庫中的[SSL:UNKNOWN_PROTOCOL]可能的原因是什麼?
- 26. Python:什麼是SIGTERM的默認處理?
- 27. 什麼是Python中
- 28. 在我的電腦中安裝wordpress的原理是什麼?
- 29. teradata中的UPSERT語句和它的工作原理是什麼?
- 30. 基於js的API中令牌的基本原理是什麼
不根據Guido:https://mail.python.org/pipermail/python-dev/2014-March/133118.html – 2016-04-13 06:51:29