Python中的EAFP原理是什么?

在Python中“使用EAFP原理”是什么意思? 你能提供任何例子吗?

从词汇表 :

比容许更容易要求宽恕。 这种常见的Python编码风格假设存在有效的键或属性,并且如果假设certificate是错误的,则捕获exception。 这种干净而快速的风格的特点是存在许多tryexcept声明。 该技术与许多其他语言如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字典内的密钥两次,也可能被认为是稍微不太可读。

斯文的文章非常简洁,很好地回答了这个问题。 然而,谈到EAFPLBYL ,很好地阅读本文中总结的历史细节,性能和可读性问题。

https://blogs.msdn.microsoft.com/pythonengineering/2016/06/29/idiomatic-python-eafp-versus-lbyl/