LBYL与EAFP两种防御性编程风格
检查数据可以让程序更健壮,用术语来说就是防御性编程。
检查数据的时候,有这样的两种不同的风格。
LBYL:Look Before You Leap
EAFP:It's Easier to Ask Forgiveness than Permission
LBYL即事先检查。
EAFP是不检查,出了问题由异常处理来处理。
下面通过一个单词统计的例子来阐释一下。
d = {} words = ['a','d','a','c','b','z','d']#LBYLfor w in words: if w not in d: d[w] = 0 d[w] += 1 #EAFPfor w in words: try: d[w] += 1 except KeyError: d[w] = 1