zoukankan      html  css  js  c++  java
  • python 调试之assert and logging

    断言 assert

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

    如果断言失败,会抛出AssertionError

    def foo(s):
    n = int(s)
    assert n != 0, 'n is zero'
    return 10/n

    foo('0')

    输入结果:

    Traceback (most recent call last):
    File "。。。/errorPrac.py", line 35, in <module>
    foo('0')
    File "。。。errorPrac.py", line 32, in foo
    assert n != 0, 'n is zero'
    AssertionError: n is zero

    logging

    logging不但能抛出错误,还可以输出到文档

    输出到文档的内容需要在import logging的时候定义,允许定义输出信息的级别:debug, info, warning, error,

    当制定level = INFO后,logging.debug就不起作用了。同样的,如果指定 level = ERROR, 前面的debug,info和warning都不起作用了

    logging还有一个好处,通过简单的配置,一条语句可以同时输出到不同的地方,比如console和文件

    如:

    import logging
    logging.basicConfig(level=logging.INFO)
    def test(s):
    n = int(s)
    logging.info('n = %d' % n)
    print(10 / n)

    test('0')

    输出:

    NFO:root:n = 0
    Traceback (most recent call last):
    File errorPrac.py, line 44, in <module>
    test('0')
    File errorPrac.py, line 42, in test
    print(10 / n)
    ZeroDivisionError: division by zero




  • 相关阅读:
    Windows 2008R2 安装PostgreSQL 11.6
    Redis-基础介绍
    SQL Server中的GAM页和SGAM页
    linux读写相关
    String 和 Stringbuild
    JVM(六)如何执行方法调用
    dubbo学习(三)实现细节
    dubbo学习(二)SPI
    spring boot
    MySQL学习(二十一)锁
  • 原文地址:https://www.cnblogs.com/xiaohai2003ly/p/8529302.html
Copyright © 2011-2022 走看看