1. EAFP 风格
Python 有一套自己的哲学,其中 EAFP 是其中比较有名的。它的全称是:
Easier to Ask for Forgiveness than Permission |
强行翻译一下,就是 寻求原谅比获得授权更容易。
对于第一次接触这个 EAFP 名词的同学,可能不好理解这句话的意思。
没有关系,咱先看一下 EAFP 风格的代码是什么样的,你就能立马 get 了。
下面这段代码,我在 try 里使用 [key] 的方法获取字典一个 value 值,但是由于 profile 并没有 age 的键。所以会抛出异常。
- profile = {"name": "明哥"}
- try:
- print(profile["age"])
- except KeyError:
- print("Key is not exist")
像这种,先相信代码本身没有问题,任其执行,有问题了再通过捕获进行处理的代码风格,就叫做 EAFP 风格。
我个人把这种写法,称之为 面向崩溃编程。
2. LBYL 风格
LBYL 的全称是:
Look Before You Leap |
翻译一下,就是 你跳之前先看看,这是一种比较保守的写法。这种写法可能会有让你写很多的 if 判断语句来规避可能出现错误的各种场景。
还是以上面的代码为例,使用 LBYL 风格来写的话,是这样的
- profile = {"name": "明哥"}
- if "age" in profile:
- print(profile["age"])
- else:
- print("Key is not exist")
3. 选择哪种风格?
用一个生动的例子来描述他们的区别。
有一对小伙伴一起约去某名山游玩,由于这座山比较险峻,有各种各校的悬崖。
伙伴A,是一个比较大胆开放的人,他自己穿上了降落伞,所以在游玩的时候,无所顾忌,都不看路,一旦不小心跌落悬崖了也有降落伞保命。 -- 这是 EAFP 风格
而伙伴B,是一个比较保守的人,他没有穿降落伞,所以每走一走都要看一看,前面是不是悬崖。-- 这是 LBLY 风格
EAFP虽然是 Python 比较推荐的一种编码风格,但更多情况下,这两种风格会同时存在于你的代码中代码风格的目的是增强代码的可读性和健壮性,在有些场景下 EAFP 风格更加易读,在有些场景下 LBLY 风格更加易读,因此不必纠结使用哪种风格,具体情况应该具体分析。
本文转载自微信公众号「Python编程时光」,可以通过以下二维码关注。转载本文请联系Python编程时光公众号。
一、PostgreSQL行业位置 一 行业位置 首先我们看一看RDS PostgreSQL在整个行业当...
定义 this是函数运行时自动生成的内部对象,即调用函数的那个对象。(不一定很准...
本文转载自网络,原文链接:https://mp.weixin.qq.com/s/vlOUg46B5bcmToX-fjavJQ...
很长时间没有更新原创文章了,但是还一直在思考和沉淀当中,后面公众号会更频繁...
2020年对于云计算行业来说是突破性的一年,因为公共云供应商增加了收入,而疫情...
查看表结构,sbtest1有主键、k_1二级索引、i_c二级索引 CREATE TABLE `sbtest1` ...
最近,DevOps的采用导致了企业计算的重大转变。除无服务器计算,动态配置和即付...
中国最?好的一朵云飘进了华瑞银行。阿里云将进一步助力华瑞银行All in Cloud。 -...
在TOP云(zuntop.com)科技租赁过服务器的站长都知道独立服务器在价格上比VPS主...
9月17日,2020云栖大会上,阿里云正式发布工业大脑3.0。 阿里云智能资深产品专家...