Python中的EAFP原理是什么?
在Python中“使用EAFP原理”是什么意思? 你能提供任何例子吗?
从词汇表 :
比容许更容易要求宽恕。 这种常见的Python编码风格假设存在有效的键或属性,并且如果假设certificate是错误的,则捕获exception。 这种干净而快速的风格的特点是存在许多
try
和except
声明。 该技术与许多其他语言如C.的LBYL风格形成对比
一个例子是尝试访问字典键。
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版本必须search字典内的密钥两次,也可能被认为是稍微不太可读。
斯文的文章非常简洁,很好地回答了这个问题。 然而,谈到EAFP和LBYL ,很好地阅读本文中总结的历史细节,性能和可读性问题。
https://blogs.msdn.microsoft.com/pythonengineering/2016/06/29/idiomatic-python-eafp-versus-lbyl/