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

原文地址:https://www.cnblogs.com/Henry-ZHAO/p/13192600.html