zoukankan      html  css  js  c++  java
  • debug技巧

    1. print

    2. assert #优雅点,效果同print

    3. pdb.set_trace可以在怀疑有问题的地方设置断点开始单步执行,结合 “p 变量名” 查看变量值,“c”继续运行。 只是pdb会全局单步。
      打断点,注意使用二分法快速定位问题所在

    4. log日志:最强大 https://www.cnblogs.com/yyds/p/6901864.html

    import logging #允许指定记录信息的级别,有debug,info,warning,error等几个级别
    LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
    logging.basicConfig(filename='my.log', level=logging.DEBUG, format=LOG_FORMAT) #可以设置输出到某个文件,日志等级、格式等
    
    1. 单元测试unit test
      (分治的思想,对核心代码比如一个函数或类做一个单元测试,在继续开发变动的过程中,可以随时跑一下单元测试,保证代码的功能正确性)https://www.liaoxuefeng.com/wiki/1016959663602400/1017604210683936
    import unittest #python内置的单元测试模块
    class TestDict(unittest.TestCase):#继承单元测试基类TestCase
        def test_init(self):
            d = Dict(a=1, b='test')
            self.assertEqual(d.a, 1)
            self.assertEqual(d.b, 'test')
            self.assertTrue(isinstance(d, dict))
    
        def test_key(self):
            d = Dict()
            d['key'] = 'value'
            self.assertEqual(d.key, 'value')
    
        def test_attr(self):      
          #attr;attribution,属性即data
            d = Dict()
            d.key = 'value'
            self.assertTrue('key' in d)
            self.assertEqual(d['key'], 'value')
    
        def test_keyerror(self):
            d = Dict()
            with self.assertRaises(KeyError):
                value = d['empty']
    
        def test_attrerror(self):
            d = Dict()
            with self.assertRaises(AttributeError):
                value = d.empty
    
    
  • 相关阅读:
    Css进阶
    Css布局
    遇到的小问题
    MySQL 8.017连接Navicat中出现的问题
    ConcurrentHashMap图文源码解析
    HashMap图文源码解析
    接口和抽象类
    dependencies 和 devDependencies
    2020.7.7第二天
    2020.7.6第一天
  • 原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13192600.html
Copyright © 2011-2022 走看看