• 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调试环境

  • 相关阅读:
    CentOS 5.5 系统安全配置
    从PHP5.2.x迁移到PHP5.3.x
    快要放假了!但为什么现在感到特别的累呢?!
    C#、Oracle、Sql server中拼音查询的函数
    C#实现Word中表格信息读取
    用 win2003 架设共享服务器[3]
    用 win2003 架设共享服务器[2]
    用 win2003 架设共享服务器[1]
    c#操作word表格
    Visual Studio 2008(VS2008)升级正式版
  • 原文地址:https://www.cnblogs.com/pr1s0n/p/12246008.html
Copyright © 2020-2023  润新知