首页 > 后端开发 > Python教程 > 请求宽恕,而不是许可:什么时候是更好的编程方法?

请求宽恕,而不是许可:什么时候是更好的编程方法?

Mary-Kate Olsen
发布: 2025-01-01 11:33:10
原创
805 人浏览过

Ask Forgiveness, Not Permission: When Is It the Better Programming Approach?

揭秘“请求宽恕而不是许可”

短语“请求宽恕而不是许可”指的是两种编程方法之间的对比:“请求许可”和“请求许可”原谅。”

“请求许可”风格

这个方法在尝试操作之前检查条件:

if can_do_operation():
    perform_operation()
else:
    handle_error_case()
登录后复制

但是,这种样式有局限性:

  • 在并发环境中,条件可能会在检查和执行操作之间发生变化。
  • 定义权限检查的精确条件可能很困难。

“请求宽恕”样式

此方法尝试操作并处理任何由此产生的错误:

try:
    perform_operation()
except Unable_to_perform:
    handle_error_case()
登录后复制

“请求宽恕”的优点:

  • 并发环境中的鲁棒性:它处理期间条件的变化操作。
  • 简单性:避免定义复杂的权限检查。

对象属性的应用

在您的示例中,如果属性 foo.bar 不存在,则不应将其视为 foo 对象的失败。相反,这通常是一个编程错误。要处理此问题,请将 bar 初始化为 None 并使用:

if foo.bar is not None:
    handle_optional_part(foo.bar)
else:
    default_handling()
登录后复制

这可确保 foo 缺少 bar 字段或具有有效值。

结论

"请求宽恕而不是许可”并不是为糟糕的编码找借口。相反,它是在操作可能失败的特殊情况下优先考虑稳健性和清晰度。对于可选对象属性,用 None 默认值表示它们并使用适当的存在检查遵循此原则。

以上是请求宽恕,而不是许可:什么时候是更好的编程方法?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板