码迷,mamicode.com
首页 > 其他好文 > 详细

debug技巧

时间:2020-06-25 19:21:49      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:for   war   format   设置断点   代码   int   执行   html   cas   

  1. print

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

  3. 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. pdb.set_trace可以在怀疑有问题的地方设置断点开始单步执行,结合 “p 变量名” 查看变量值,“c”继续运行。 只是pdb会全局单步。

  2. 单元测试(分治的思想,对核心代码比如一个函数或类做一个单元测试,在继续开发变动的过程中,可以随时跑一下单元测试,保证代码的功能正确性)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

debug技巧

标签:for   war   format   设置断点   代码   int   执行   html   cas   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!