python断言(assert) 与 __debug__
来源:互联网 发布:爱卓金蝶erp软件 编辑:程序博客网 时间:2024/05/16 12:28
assert语句可以在程序中引入调试代码。assert的一般格式如下:
assert test [, msg]
其中test是一个表达式,其值应该为True或者False。如果test值为False,assert就会抛出AssertionError异常,并使用在assert中提供的可选信息msg,例如:
def func(file, data):
assert file, "write_data,: file not defined!"
assert语句不应用于必须执行以确保程序正确的代码,因为如果python运行在最优模式中(通过对解释器使用-O选项进入该模式),它将不会执行。特别是不能用assert语句检查用户输入。相反,assert语句用于检查应该始终为真的内容;如果assert引发异常,这意味着程序中存在bug,而不是用户出现了错误。
例如,如果计划把前面的内容func()交付给最终用户使用,应该使用传统的if语句和相应的错误处理代码替换assert语句。
除了assert语句之外,python还提供内置的只读变量 __debug__, 除非解释器运行在最优模式中(通过使用-O选项指定),否则它的值为True。在运行额外的错误检查过程时,程序可能在需要时检查这个变量。__debug__变量的底层实现在解释器中经过了优化,因为实际上没有包含if语句本身的额外控制流逻辑。如果python运行在普通模式中,if __debug__语句下的语句就会内联到没有if语句本身的程序中。在最优模式中,if __debug__ 语句以及所有相关语句都将从程序中完全删除。
使用 assert 和 __debug__ 语句可以对程序进行高效的双模式开发。例如在调试模式中,可以随意地在代码中加入断言和调试检查,以便验证操作正确与否。在最优模式中,将省略所有这些额外的检查,以免造成额外的性能负担。
- python断言(assert) 与 __debug__
- python __debug__与sys.path_hooks
- python assert断言
- python 断言assert用法
- python中的断言assert
- Python assert 断言函数
- Python 断言assert用法
- Python:断言(assert)
- Python assert 断言
- python使用assert断言
- Python assert断言
- python assert 断言语句
- python assert断言语句
- Python 断言(assert)
- python assert断言
- Python :assert断言使用
- [Python]断言assert的用法
- 每天一点python--assert断言
- Android学习笔记之Bitmap位图虽触摸点移动
- Design库-TabLayout属性详解
- Android中的自定义属性和组合式控件
- Oralce11g修改字符集
- Android 自定义RecyclerView 实现真正的Gallery效果
- python断言(assert) 与 __debug__
- Android 6.0 相关问题
- chmod命令详细用法
- 没辣么大的公司怎么发布前端代码和控制版本
- 迄今为止最通俗易懂的MVP架构讲解
- 有关sql修改密码的操作
- AndroidStudio配置SVN
- 8.路径别名与名字空间
- struts2里同包与不同包的action之间跳转