当前位置: 首页 > news >正文

寺庙 网站建设百度搜索什么关键词排名

寺庙 网站建设,百度搜索什么关键词排名,滨海做网站找哪家好,沈阳搜索排名公司文章目录1. 错误处理2. debugassertloggingpdbIDE3. unittest编写运行setUp 与 tearDown4. doctest1. 错误处理 try:# 可能有异常的代码块r 10/int(2) except ValueError as e:# 有异常时执行,捕获指定类型及其子类型的错误print(ValueError, e) except ZeroDivis…

文章目录

    • 1. 错误处理
    • 2. debug
      • assert
      • logging
      • pdb
      • IDE
    • 3. unittest
      • 编写
      • 运行
      • setUp 与 tearDown
    • 4. doctest

1. 错误处理

try:# 可能有异常的代码块r = 10/int('2')
except ValueError as e:# 有异常时执行,捕获指定类型及其子类型的错误print('ValueError', e)
except ZeroDivisionError as e:# 当前面的异常命中后,后面不会再次捕获print('ZeroDivisionError', e)
else:# 无异常时执行print('no error.')
finally# 上面结束后一定会执行print('finally')

调用栈

从上到下时整个错误的调用函数链,依次从外到内;

记录错误

try:r = 10/int('0')
except Exception as e:# 记录错误堆栈logging.exception(e)

抛出异常

# 自定义异常
class FooError(ValueError):pass# 抛出异常
raise FooError('invalid value')# 捕获异常,原样抛出
except ValueError as e:raise# 转化成另一种异常抛出
except ZeroDivisionError:raise ValueError('input error.')

程序主动抛出异常时,应该在文档写清楚可能抛出的异常及其原因,方便调用者处理相应的错误;

2. debug

assert

如果断言的语句不成立,assert 语句会抛出 AssertionError;

assert n!=0, 'n is zero.'

可以通过 -O 参数关闭断言,关闭后,assert 语句相当于 pass

logging

import logging
logging.basicConfig(level=logging.INFO)logging.info('xxx')

logging level

  • CRITICAL
  • ERROR
  • WARNING - 根记录器级别默认级别
  • INFO
  • DEBUG
  • NOTSET - 默认级别,处理所有消息

logging 的另一个好处时通过配置,一条消息可以同时输出到不同的地方,比如console、文件、database

多使用logging

pdb

以参数-m pdb启动.py,单步运行;

python -m pdb xxx.py

pdb界面指令

指令作用
l查看代码
n单步执行
pp 变量名 查看变量
q结束调试,退出程序
c继续运行

set_trace()

设置断点,进入调试后,通过c命令运行自动暂停在该断点处;

IDE

Visual Studio Code

PyCharm

3. unittest

TDD

测试驱动开发(Test Driven Development);

单元测试是未来重构代码的保障;

单元测试要覆盖常用输入组合,边界条件,异常;

单元测试不能太复杂,否则自身也可能有 bug;

编写

import unittest
class TestDict(unittest.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_keyerror(self):d = dict()# 期待语句块中抛出指定类型的 Errorwith self.assertRaises(KeyError):value = d['empty']

单元测试类继承自unittest.TestCase

单元测试方法必须以test开头命名,否则不会被执行;

运行

通过代码运行

if __name__ == '__main__':unittest.main()

通过命令参数运行

python -m unittest mytest

setUp 与 tearDown

在每调用一个单元测试的前后被执行;

4. doctest

文档测试,既可以用来运行测试,也是实例代码;

严格按照 Python 交互命令行的输入和输出来判断测试结果的正确性;

在测试异常时,可用...表示中间省略的输出;

class Dict(dict):"""Simple dict but also support access as x.y style.>>> d1 = Dict()>>> d1['x'] = 100>>> d1.x100>>> d1.y = 200>>> d1['y']200>>> d2 = Dict(a=1, b=2, c='3')>>> d2.c'3'>>> d2['empty']Traceback (most recent call last):...KeyError: 'empty'>>> d2.emptyTraceback (most recent call last):...AttributeError: 'Dict' object has no attribute 'empty'"""def __init__(self, **kw):super(Dict, self).__init__(**kw)def __getattr__(self, key):try:return self[key]except KeyError:raise AttributeError(f"'Dict' object has no attribute '{key}'")def __setattr__(self, key, value):self[key] = valueif __name__ == "__main__":import doctestdoctest.testmod()

运行

python mydict.py

没有输出既是运行正确;


上一篇:「Python 基础」面向对象编程
专栏:《Python 基础》

PS:感谢每一位志同道合者的阅读,欢迎关注、评论、赞!

http://www.zhongyajixie.com/news/5923.html

相关文章:

  • 旅游平台网站建设方案成功的软文推广
  • 网站建设规划方案百度网盘客户端下载
  • 海口网站建设品牌大全关键词seo如何优化
  • 网站建设定制开发网站设计开发怎么搞自己的网站
  • wordpress显示的是文件目录结构关键词怎么优化
  • 域名访问网站在哪里找我的百度购物订单
  • 企业网站建站意义百度怎么联系客服
  • 长春建站方法百度搜索风云榜手机版
  • 匠王红木在那个网站做众筹seo推广什么意思
  • 南开网站建设公司网站开发一般多少钱
  • win2008iis配置网站小吃培训去哪里学最好
  • wordpress做视频网站吗爱站网关键词长尾挖掘
  • 做愛4p視頻网站是什么信息流广告模板
  • 一个网站一年的费用多少百度应用市场app下载
  • 网站建设公司联系方式企业网站定制开发
  • 河北保定疫情上热搜 媒体调查seo是什么的简称
  • 时尚网站策划汕头seo代理
  • 企业网站规划与开发好搜搜索引擎
  • 青岛网站建设哪家专业做推广
  • 焦作公司做网站深圳网站关键词排名优化
  • 电子商务网站登录昆明seo优化
  • 做明星网站可以做那些子网页保定seo外包服务商
  • 网站建设销售问你告诉我怎么制作优化措施最新回应
  • 网站标签是什么可以看国外网站的浏览app
  • 做快餐 承包食堂的公司网站做网站用哪个软件
  • wordpress内部服务器桂平seo关键词优化
  • 网站建设优化文章友链提交入口
  • 小程序源码怎么使用的西安seo专员
  • 网站seo课设如何让网站快速收录
  • 北京网站优化校学费金阊seo网站优化软件