面向初学者的 Python 面向对象编程入门教程:内置数据类型解析——文档字符串与 __doc__ 属性
摘要
在 Python 编程语言中,文档字符串(Docstring)是一种常用于模块、类、函数及方法上的注释机制,通常位于定义的起始位置,紧跟在声明语句之后。文档字符串通常被三重引号(''' 或 """)包裹,支持多行文本输入,便于开发者对代码进行功能描述和说明。
文档与资源下载
本教程主要介绍 Python 在面向对象编程方面的基础用法。阅读者需具备基本的 Python 语法知识以及单片机开发经验。相较于市面上其他讲解 Python OOP 的书籍或博客,本教程更注重嵌入式上位机开发的实际应用,涵盖上下位机之间的串口通信、数据处理、动态图形绘制等内容,并结合 SourceTrail 工具实现代码可视化分析,提升学习效率。
正文
在 Python 中,文档字符串(docstring)可应用于函数、类和模块,用以说明其功能和使用方式。这些文档字符串能够通过内置属性 __doc__ 进行访问。通常,文档字符串被定义在类、函数或模块的开头部分,使用三引号(''' 或 """)包围,形成结构清晰的代码注释。
以下代码演示了如何为一个名为 MasterClass 的主机类及其方法 StartMaster 添加文档字符串,并通过 __doc__ 获取注释内容。
# 访问 MasterClass 类的文档字符串print(MasterClass.__doc__)# 访问 MasterClass 类中 StartMaster 方法的文档字符串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() 方法。 返回值: 无 ''' pass
执行上述代码后,输出如下:
此外,还可以为命名元组添加文档字符串。通过定义一个继承自命名元组的类,并在其中添加注释,即可实现该功能。以下为一个示例:
from collections import namedtuple_Sensor = namedtuple("Sensor", "ID CURRENTVALUE MAXVALUE MINVALUE")class Sensor(_Sensor): ''' 传感器数据表示类,继承自命名元组。 属性: ID —— 传感器编号 CURRENTVALUE —— 当前采集值 MAXVALUE —— 最大采集值 MINVALUE —— 最小采集值 ''' sensor_tuple = Sensor(ID="16", CURRENTVALUE=32, MAXVALUE=62, MINVALUE=2) print(sensor_tuple.__doc__)运行结果如下所示: