Python

Python,第1张

Python

经典的“请求宽恕而不是允许”示例是从dict可能不存在的a 中访问值。例如:

names = { 'joe': 'Joe Nathan', 'jo': 'Jo Mama', 'joy': 'Joy Full' }name = 'hikaru'try:    print names[name]except KeyError:    print "Sorry, don't know this '{}' person".format(name)

在此说明了可能发生的异常(KeyError),因此你并不是在请求所有可能发生的错误的宽恕,而只是要求自然发生的错误。为了进行比较,“先问权限”方法可能类似于:

if name in names:    print names[name]else:    print "Sorry, don't know this '{}' person".format(name)要么real_name = names.get(name, None)if real_name:    print real_nameelse:    print "Sorry, don't know this '{}' person".format(name)

这样的“请求宽恕”的例子通常太简单了。IMO尚不十分清楚

try/ except
块本质上优于
if/ else
。当执行可能以各种方式失败的 *** 作时,例如解析, *** 作, *** 作, *** 作等,真正的价值要清晰得多。使用
eval()
; 访问 *** 作系统,中间件,数据库或网络资源;或执行复杂的数学。当存在多种潜在的故障模式时,为获得原谅做好准备非常有价值。

有关代码示例的其他说明:

你无需在每个变量用法周围都进行浇注try/ except阻止。那太可怕了。而且你不需要设置self.bar,

__init__()
因为它已在class上面的定义中设置。通常在类中定义它(如果它的数据很可能在该类的所有实例之间共享)或在中定义
__init__()
(如果它是实例数据,特定于每个实例)。

None顺便说一下,值并非是未定义的或错误。这是一个特定且合法的值,表示无,无,空或无。许多语言都有这样的值,因此程序员不会“重载”

0,“ -1,''
(空字符串)或类似的有用值。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4912390.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存