论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
全网最适合入门的面向对象编程教程:29 类和对象的Pytho ...
全网最适合入门的面向对象编程教程:29 类和对象的Python实现-断言与防御性 ...
张春
金牌会员
|
2024-7-31 19:03:01
|
显示全部楼层
|
阅读模式
楼主
主题
899
|
帖子
899
|
积分
2697
全网最适合入门的面向对象编程教程:29 类和对象的 Python 实现-断言与防御性编程和 help 函数的使用
摘要:
在 Python 中,断言是一种常用的调试工具,它允许程序员编写一条检查某个条件。本文重要介绍了断言的应用场景和特点以及 assert 语句的使用,同时介绍了防御性编程和 help()函数。
原文链接:
FreakStudio的博客
往期推荐:
学嵌入式的你,还不碰面向对象??!
全网最适合入门的面向对象编程教程:00 面向对象设计方法导论
全网最适合入门的面向对象编程教程:01 面向对象编程的根本概念
全网最适合入门的面向对象编程教程:02 类和对象的 Python 实现-使用 Python 创建类
全网最适合入门的面向对象编程教程:03 类和对象的 Python 实现-为自界说类添加属性
全网最适合入门的面向对象编程教程:04 类和对象的Python实现-为自界说类添加方法
全网最适合入门的面向对象编程教程:05 类和对象的Python实现-PyCharm代码标签
全网最适合入门的面向对象编程教程:06 类和对象的Python实现-自界说类的数据封装
全网最适合入门的面向对象编程教程:07 类和对象的Python实现-范例注解
全网最适合入门的面向对象编程教程:08 类和对象的Python实现-@property装饰器
全网最适合入门的面向对象编程教程:09 类和对象的Python实现-类之间的关系
全网最适合入门的面向对象编程教程:10 类和对象的Python实现-类的继承和里氏替换原则
全网最适合入门的面向对象编程教程:11 类和对象的Python实现-子类调用父类方法
全网最适合入门的面向对象编程教程:12 类和对象的Python实现-Python使用logging模块输出程序运行日志
全网最适合入门的面向对象编程教程:13 类和对象的Python实现-可视化阅读代码神器Sourcetrail的安装使用
全网最适合入门的面向对象编程教程:全网最适合入门的面向对象编程教程:14 类和对象的Python实现-类的静态方法和类方法
全网最适合入门的面向对象编程教程:15 类和对象的 Python 实现-__slots__魔法方法
全网最适合入门的面向对象编程教程:16 类和对象的Python实现-多态、方法重写与开闭原则
全网最适合入门的面向对象编程教程:17 类和对象的Python实现-鸭子范例与“file-like object“
全网最适合入门的面向对象编程教程:18 类和对象的Python实现-多重继承与PyQtGraph串口数据绘制曲线图
全网最适合入门的面向对象编程教程:19 类和对象的 Python 实现-使用 PyCharm 自动天生文件解释和函数解释
全网最适合入门的面向对象编程教程:20 类和对象的Python实现-组合关系的实现与CSV文件保存
全网最适合入门的面向对象编程教程:21 类和对象的Python实现-多文件的组织:模块module和包package
全网最适合入门的面向对象编程教程:22 类和对象的Python实现-异常和语法错误
全网最适合入门的面向对象编程教程:23 类和对象的Python实现-抛出异常
全网最适合入门的面向对象编程教程:24 类和对象的Python实现-异常的捕获与处置惩罚
全网最适合入门的面向对象编程教程:25 类和对象的Python实现-Python判断输入数据范例
全网最适合入门的面向对象编程教程:26 类和对象的Python实现-上下文管理器和with语句
全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自界说异常类的实现
全网最适合入门的面向对象编程教程:28 类和对象的Python实现-Python编程原则、哲学和规范大汇总
更多精彩内容可看:
给你的 Python 加加速:一文速通 Python 并行计算
一文搞懂 CM3 单片机调试原理
肝了半个月,嵌入式技术栈大汇总出炉
电子计算机类角逐的“武林秘籍”
一个MicroPython的开源项目集锦:awesome-micropython,包含各个方面的Micropython工具库
文档和代码获取:
可访问如下链接进行对文档下载:
https://github.com/leezisheng/Doc
本文档重要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开辟具有根本了解。相比其他解说 Python 面向对象编程的博客或册本而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处置惩罚、动态图绘制等为应用实例,同时使用 Sourcetrail 代码软件对代码进行可视化阅读便于读者明白。
相干示例代码获取链接如下:
https://github.com/leezisheng/Python-OOP-Demo
正文
断言(assert)
在 Python 编程中,断言(assert)作为一种强大的调试工具,被广泛应用于代码的调试和开辟过程中。通过在代码中插入断言语句,我们可以对代码的正确性进行严格的检查。当断言的条件为假时,程序会引发 AssertionError 异常并停止执行。而当断言的条件为真时,程序会如常继承执行,仿佛断言语句从未存在过。因此,合理使用断言,对于确保代码的质量和稳定性具有重要意义。
assert 表达式 , 描述
复制代码
以下面代码为例,可以看到“1==2”的结果为 False,抛出了 AssertionError。
与异常不同
,断言是为了提醒开辟人员,在程序中可能出现了无法恢复的错误。对于一些可以预见的错误,比方未找到相干文件,用户通常能够自行改正或重试。
然而,断言并非为这类题目而生。在无 bug 的程序中,断言条件将永远保持沉默。但假如违反了断言,程序就会崩溃并报告错误,向开辟人员明确指出究竟是哪个“不可能”的环境出现了。这使得追踪和修复程序中的 bug 变得更为轻松。
在 Python 中,断言语句是一种用于调试的辅助功能,它并非处置惩罚运行时错误的机制。使用断言的目的在于帮助开辟人员更快地找到可能导致 bug 的根本缘故起因。
除非程序中确实存在 bug,否则断言绝不会抛出错误。
防御性编程与 unittest 单元测试库
断言一般用在防御型的编程、运行时检查程序逻辑、检查约定、程序常量、检查文档时,在从来不会运行失败的代码不必要加上断言。在单元测试框架中,我们常常使用断言。所谓单元测试,就是指对软件中的最小可测试单元进行检查和验证,通常是一个函数或一个方法。单元测试有助于我们在早期发现错误,提高代码的可靠性和可维护性。在 Python 中,内置了 unittest 单元测试库,可以用来编写测试代码。unittest 中常用的几个常用断言的使用方法如下:
名称
作用
assertEqual
如两个值相等,则 pass
assertNotEqual
如两个值不相等,则 pass
assertTrue
判断 bool 值为 True,则 pass
assertFalse
判断 bool 值为 False,则 Pass
assertIsNone
不存在,则 pass
assertIsNotNone
存在,则 pass
关于 unittest 单元测试库停止言的使用我们将会在之后讲到,这里仅作简单了解即可。
在使用断言时,需要特殊注意的点是在命令行中使用-o 和-oo 标志,或者修改 CPython 中的 PYTHONOPTIMIZE 环境变量,可以全局性地禁用断言。此时,所有的断言语句都将失效,程序将直接跳过而不处置惩罚断言,因此不会执行任何条件表达式。
在 Python 的实际开辟过程中,我们常常会遇到性能题目。所谓性能题目,就是 Python 程序运行得相对较慢。遇到性能题目时,我们有两种方法可以进行优化:一是修改源代码,优化逻辑,提拔性能;二是打开 Python 表明器的优化功能。
Python 表明器提供了两种优化级别:
level1 优化:通过将内置的__debug__全局变量设置为 false,并删除 assert 语句,达到优化效果。
level2 优化:除了 level1 的优化措施外,还会删除函数的文档阐明(即函数后面的''''解释)。
使用-O 参数可以达到 level1 优化效果(大写字母 O),而使用-OO 参数则可以达到 level2 优化效果(两个都是大写字母 O)。这些优化方法对于提拔 Python 程序的运行速率非常有帮助。
python -o main.py
复制代码
help()函数
在 Python 中,有许多内置函数和模块,此中一些可能不太起眼,但却非常实用。此中之一就是 help()函数。help()函数用于获取有关 Python 对象、模块、函数或方法的帮助信息。它可以更好地明白 Python 的功能和如何正确使用它们。
help()函数的根本用法非常简单,只需在交互式 Python 表明器中输入对象、模块、函数或方法的名称,并将其作为参数传递给 help()函数。
help语法:help([object])
复制代码
这里,我们看看 assert 函数的 help 输出:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
张春
金牌会员
这个人很懒什么都没写!
楼主热帖
聊聊容灾演练-练什么|深度好文 ...
Redis概述及基本数据结构
彻底搞懂Docker容器与Kraft模式kafka集 ...
【CSDN官方】开源又好用的国产SPL ...
Eclipse连接SQLServer2008
Velero系列文章(四):使用Velero进行 ...
2022十三届蓝桥杯国赛题解
干货|APP自动化Android特殊控件Toast识 ...
linux跟踪技术之ebpf
4. 事务和锁
标签云
存储
挺好的
服务器
快速回复
返回顶部
返回列表