• python笔记——调试和异常处理


    type()函数

    type()函数既可以返回一个对象的类型,又可以创建出新的类型。
    type('类名',(继承的父类),dict(方法绑定函数))
    使用type()函数创建的类和直接写class完全一样,因为python解释器遇到class定义时,仅仅是扫描以下class定义的语法,然后调用type()函数创建出class。

    metaclass()

    当我们定义了类之后,可以根据这个类创建出实例,所以:
    先定义metaclass,就可以创建类,最后创建实例。

    错误处理

    try

    try...excepy...finally
    流程为:try产生错误跳转到except,except执行结束后如果又finally则跳转到finally。

    调试

    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错误,内容为表达式后的'n is zero!'
    python解释器可以使用-O参数来关闭assert

    logging

    import logging
    logging.basicConfig(level=logging.INFO)

    logging不会抛出错误,且可以输出错误信息到文件。
    logging记录的信息等级有:debug,info,warning,error等几个级别。

    pdb

    pdb适用于python解释器,可使程序一步一步运行。

    (Pdb) n
    > /Users/michael/Github/learn-python3/samples/debug/err.py(3)<module>()
    -> n = int(s)
    (Pdb) n
    > /Users/michael/Github/learn-python3/samples/debug/err.py(4)<module>()
    -> print(10 / n)
    

    使用n可以单步执行代码,使用p 变量名查看变量

    (Pdb) p s
    '0'
    (Pdb) p n
    0
    

    使用q结束调试

    pdb.set_trace()

    程序内使用pdb.set_trace()可以设置一个断点。
    运行后,程序会在断点处暂停并进入pdb调试环境

  • 相关阅读:
    6554545555
    484844
    学习资料整理
    word加上尾注之后参考文献下面的横线去除
    数据结构+算法
    python编程
    计算机网络(1)
    数据结构
    数据分析笔试(3)
    数据分析笔试(2)
  • 原文地址:https://www.cnblogs.com/pr1s0n/p/12246008.html
Copyright © 2020-2023  润新知