赞
踩
Python的assert,是个语句,不是一个函数,所谓assert statement。
>>>
>>>assert 1==1 and 2==2
>>>
>>>assert 1==1 and 2==3
Traceback (most recent call last):
File "", line 1, in
AssertionError
>>>
如果assert后面的语句是False,就会有一个AssertionError异常被抛出。
Python教材中有这样一句话:
In the current implementation, the built-in variable __debug__ is True under normal circumstances, False when optimization is requested (command line option -O). The current code generator emits no code for an assert statement when optimization is requested at compile time.
assert语句只在debug模式下有效,使用-O参数优化之后,assert就等同于不存在了。(-OO参数,连__doc__都消失)。可以用这个方式:
C:\Users\Administrator>python -O
Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AM
D64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> assert 1==1
>>>
>>> assert 1==2
>>>
>>>__debug__
False
>>>
关于-O和-OO优化参数,请见下图示例:
python的-O和-OO优化参数
使用assert涉及到编程思想,有人说使用assert是一种防御方式的编程,可以当成比注释更好的手段。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。