首页 > 后端开发 > Python教程 > 你应该在 Python 代码中'请求宽恕,而不是许可”吗?

你应该在 Python 代码中'请求宽恕,而不是许可”吗?

Mary-Kate Olsen
发布: 2024-12-10 11:07:16
原创
925 人浏览过

Should You

“请求宽恕而不是许可”背后的哲学

“请求宽恕而不是许可”这句话经常在编码中用来描述编程优先执行操作而不是事先检查权限的风格。

在 Pythonic 代码中,这一原则表明,与其使用条件语句来验证属性的存在性或操作的有效性,不如尝试操作并处理任何由此产生的异常,这样会更有效。

示例场景和“请求宽恕” " 方法

考虑一个带有可选属性栏的类。在传统编程中,人们可能会在使用属性之前检查该属性是否存在:

if foo.bar:
    # Do stuff
登录后复制

但是,“请求宽恕”方法建议:

try:
    foo.bar  # Attempt to access the attribute
    # Do stuff    
except AttributeError:
    # Handle the error if the attribute doesn't exist
登录后复制

“请求宽恕”的参数宽恕》

  • 并发:在多线程环境中或者处理外部资源时,系统的状态可以在权限检查和操作之间发生变化。
  • 精度: 定义特定的权限检查可能很困难,导致误报或误报

可选属性的例外

对于可选属性,可接受的 Pythonic 方法是将属性初始化为 None 并显式检查其存在:

if foo.bar is not None:
    # Handle the optional part
else:
    # Default handling
登录后复制

这确保代码清晰并且意图处理可选属性是明确的。

以上是你应该在 Python 代码中'请求宽恕,而不是许可”吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

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