软件编程之“获得事后原谅总是比事先得到许可容易得多”
2014-11-11 21:00
369 查看
获得事后原谅总是比事先得到许可容易得多,即“It's easier to ask forgiveness than permission. ”;简称EAFP。这是一种很好地编程处理方式,try/catch是保证EAFP风格的关键工具;
举例如下:如果验证Python中一个对象是否是类字符串,我们可能想到很多办法:
1、
2、
针对上述问题EAFP就是一个很好的解决办法:
在Python中这种方式来源于:Python中通常的类型检查方法就是所谓的鸭子判断法,走路和叫声都像鸭子,我们就可以认为那就是鸭子;上面这种方法只是走路像,如果叫声也想?如下代码:
举例如下:如果验证Python中一个对象是否是类字符串,我们可能想到很多办法:
1、
type(anobj) is type('') //这种方式Unicode就是无法通过的;
2、
isinstance(anobj,basestring) //对于Python标准库中的UserString模块提供的UserString类的实例完全无能为力,而UserString对象明显是类字符串对象,只不过UserString不是从basestring派生的;
针对上述问题EAFP就是一个很好的解决办法:
<pre class="python" name="code"> try:anobj+' ' except:return False else: return True
在Python中这种方式来源于:Python中通常的类型检查方法就是所谓的鸭子判断法,走路和叫声都像鸭子,我们就可以认为那就是鸭子;上面这种方法只是走路像,如果叫声也想?如下代码:
try:anobj.lower()+anobj+' ' //这种方式应该可以满足所有类字符串的类型判定
相关文章推荐
- 关于图形化编程软件sikuli 初学者使用时可能容易出现的一些问题
- 成功软件开发者的9种编程习惯 7
- 成功软件开发者的9种编程习惯 2
- linux下c语言编程获得mx记录
- C++编程人员容易犯的10个C#错误
- 不用编程,得到一个用户QQ在线状态
- C++编程人员容易犯的10个C#错误
- 金山软件论坛 - 综合交流区 - 系统+软件+编程 - 『网友常见问题及解答』
- 为什么用ROUND四舍五入总是无法得到正确数值?
- 要学习WinForm编程,关于软件自动升级的部分
- 成功软件开发者的9种编程习惯 1
- 成功软件开发者的9种编程习惯(六)
- 成功软件开发者的9种编程习惯(四)
- 采用XP方法使软件项目获得更大成功
- 成功软件开发者的9种编程习惯(一)
- 成功软件开发者的9种编程习惯 3
- 成功软件开发者的9种编程习惯 4
- 成功软件开发者的9种编程习惯
- 成功软件开发者的9种编程习惯(五)
- .NET编程初学者容易犯的错误和容易混淆的概念