全网最适合入门的面向对象编程教程:35 Python的内置数据类型-文档字符串和__doc__属性

news/2024/9/22 13:33:16/文章来源:https://www.cnblogs.com/FreakEmbedded/p/18352995

全网最适合入门的面向对象编程教程:35 Python 的内置数据类型-文档字符串和__doc__属性

image

摘要:

在 Python 中,文档字符串(Docstring)是一种用于为模块、类、方法或函数编写文档的字符串,通常放置在定义的开头,紧跟在声明之后。文档字符串使用三重引号(""" 或 ''')包围,可以跨越多行。

原文链接:

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编程原则、哲学和规范大汇总

全网最适合入门的面向对象编程教程:29 类和对象的Python实现-断言与防御性编程和help函数的使用

全网最适合入门的面向对象编程教程:30 Python的内置数据类型-object根类

全网最适合入门的面向对象编程教程:31 Python的内置数据类型-对象Object和类型Type

全网最适合入门的面向对象编程教程:32 Python的内置数据类型-类Class和实例Instance

全网最适合入门的面向对象编程教程:33 Python的内置数据类型-对象Object和类型Type的关系

全网最适合入门的面向对象编程教程:34 Python的内置数据类型-Python常用复合数据类型:元组和命名元组

更多精彩内容可看:

给你的 Python 加加速:一文速通 Python 并行计算

一文搞懂 CM3 单片机调试原理

肝了半个月,嵌入式技术栈大汇总出炉

电子计算机类比赛的“武林秘籍”

一个MicroPython的开源项目集锦:awesome-micropython,包含各个方面的Micropython工具库

文档和代码获取:

可访问如下链接进行对文档下载:

https://github.com/leezisheng/Doc

image

本文档主要介绍如何使用 Python 进行面向对象编程,需要读者对 Python 语法和单片机开发具有基本了解。相比其他讲解 Python 面向对象编程的博客或书籍而言,本文档更加详细、侧重于嵌入式上位机应用,以上位机和下位机的常见串口数据收发、数据处理、动态图绘制等为应用实例,同时使用 Sourcetrail 代码软件对代码进行可视化阅读便于读者理解。

相关示例代码获取链接如下:https://github.com/leezisheng/Python-OOP-Demo

正文

在 Python 中,我们可以为方法、类和模块添加文档字符串,这些文档字符串可以通过一个特殊属性__doc__获取。文档字符串(docstring)是一种用于描述类、函数、模块或方法的字符串,通常位于定义的顶部,并用于提供有关其功能和用法的信息。文档字符串通常被包含在三引号(''' 或 """)中,并位于类、函数、模块或方法定义的顶部。

例如,在下列示例中,我们为 MasterClass 主机类及其 StartMaster 开启主机方法添加必要注释,并通过以下语句访问:

_# 访问MasterClass类的__doc__属性_print(MasterClass.__doc__)_# 访问MasterClass类中StartMaster方法的__doc__属性_print(MasterClass.StartMaster.__doc__)

示例代码如下:

class MasterClass(SerialClass,PlotClass):'''MasterClass:该类表示主机类,主要用于接收传感器数据、收发指令等具有如下属性:state       —— 表示主机工作状态port        —— 表示主机端口号wintitle    —— 表示窗口标题... ...具有如下方法:StartMaster     —— 开启主机StopMaster      —— 停止主机RecvSensorValue —— 接收传感器数据值... ...'''..._# 类的初始化_def __init__(self,state:int = IDLE_STATE,port:str = "COM17",wintitle:str="Basic plotting examples",plottitle:str="Updating plot",width:int=1000,height:int=600):pass_# 开启主机_def StartMaster(self):'''StartMaster方法——开启主机调用SerialClass.OpenSerial()方法:return: 无返回值'''pass

如下为运行结果:

image

同时,我们也可以给命名元组添加文档字符串。使用一个类继承对应的命名元组,并在类中添加文档注释,示例代码如下:

from collections import namedtuple_Sensor = namedtuple("Sensor","ID CURRENTVALUE MAXVALUE MINVALUE")class Sensor(_Sensor):'''这是一个继承自表示传感器数据的命名元组的类具有四个属性:(1) ID              : 表示传感器ID号(2) CURRENTVALUE    : 传感器采集到的当前数据值(3) MAXVALUE        : 传感器采集到的最大数据值(4) MINVALUE        : 传感器采集到的最小数据值'''
sensor_tuple=Sensor(ID="16",CURRENTVALUE=32,MAXVALUE=62,MINVALUE=2)
print(sensor_tuple.__doc__)

运行结果如下:

image

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/781079.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VDI/VDE 2634 Part2 2002:05

VDI/VDE 2634 2002:05 第二部分[!NOTE] 原始PDF链接:https://www.doc88.com/p-57887264529548.htmlOptical 3-D measuring systems Optical systems based on area scanning Preliminary note Optical 3-D measuring systems are used as universal measuring and test equipm…

vue2父子组建传递数据

父子组建通信代码demo 父页面 父页面编写handleUploadNew 接收子组建uploadNew 传上来的对象 父页面传递tempUrl 给子页面初始化数据 <Upload :temp-url="tempUrl" @uploadNew="handleUploadNew" /> 子组件里面<i class="el-icon-delete&qu…

021.Vue3入门,组件基础,显示一个经典的布局样式

1、一个经典的样式布局2、App.vue代码如下:<template><Header/><Main/><Aside/> </template><script> import Aside from "./view/Aside.vue"; import Main from "./view/Main.vue"; import Header from "./vie…

基于GWO灰狼优化的CNN-GRU的时间序列回归预测matlab仿真

1.算法运行效果图预览 (完整程序运行后无水印) 2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)a=2*(1-(t/Iters)); for i=1:Numfor j=1:dim r1 = rand; r2 = rand;A1 = 2*a*r1-a;%C1 = 2*r2; %D_a…

基于PSO粒子群优化的车间调度问题求解matlab仿真,输出甘特图

1.程序功能描述基于PSO粒子群优化的车间调度问题求解matlab仿真,输入不同机器,不同工作的完成时间,输出甘特图,输出收敛图。实现车间多机器,多任务最优并行调度。2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序for iter = 1: Itersiterfor i=1:N_pso%V,X更…

基于智能电网系统的PQ并网控制器simulink建模与仿真

1.课题概述在simulink中,通过建模实现智能电网系统的PQ并网控制器,仿真输出PQ控制器的控制输出,以及智能电网的三相电压电流的收敛输出。2.系统仿真结果3.核心程序与模型 版本:MATLAB2022a 00054.系统原理简介介绍了基于智能电网系统的PQ并网控制器的原理和数学公式。首先…

020.Vue3入门,sytle中加入scoped只在这个文件中生效

1、全局代码App.vue如下<script setup> import Testpage001 from ./view/Testpage001.vue import Testpage002 from ./view/Testpage002.vue </script><template><div class="style1">测试1</div><Testpage001/><Testpage002…

018.Vue3入门,sytle中加入scoped只在这个文件中生效

1、全局代码App.vue如下<script setup> import Testpage001 from ./view/Testpage001.vue import Testpage002 from ./view/Testpage002.vue </script><template><div class="style1">测试1</div><Testpage001/><Testpage002…

region format is illegal, only digit, letter and - is allowed!(.env文件中行内注释导致!!)

引子:一个图片上传功能,用腾讯云cos,一直找不到错误原因,结果是.env文件中的行内注释!错误描述上传图片代码def action_upload_img_cloud(request):user = CustomUser.objects.get(id=request.user_id)file = request.FILES[img]file_name = file.nameunique_file_name = …

Knife4j文件上传不显示上传选择文本域

Knife4j 4.5.0 @RequestParam改用@RequestPart即可 @Operation(summary = "上传文件") @PostMapping("upload") public Result<String> upload(@RequestPart MultipartFile file) throws Exception {String url = fileService.upload(file);return R…