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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-01 11:33:10826浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn