在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