断言

    凡是用 print() 来辅助查看的地方,都可以用断言(assert)来替代:

    def foo(s):

    n = int(s)

    assert n != 0, 'n is zero!'

    return 10 / n



    def main():

    foo('0')

    assert 的意思是,表达式 n != 0 应该是 True ,否则,根据程序运行的逻辑,后面的代码肯定会出错。

    如果断言失败, assert 语句本身就会抛出 AssertionError

    $ python3 err.py

    Traceback (most recent call last):



    AssertionError: n is zero!

    程序中如果到处充斥着 assert ,和 print() 相比也好不到哪去。不过,启动Python解释器时可以用 -O 参数来关闭 assert

    $ python3 -O err.py

    Traceback (most recent call last):



    ZeroDivisionError: division by zero

    关闭后,你可以把所有的 assert 语句当成 pass 来看。