news 2026/6/15 18:03:56

Python - 文档字符串

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python - 文档字符串

Python 中的文档字符串

在 Python 中,docstring 是一种用于文档模块、类、函数和方法的方式。它们以三引号(“)书写,且可以跨越多行。

文档字符串是将文档与Python代码关联起来的便捷方式。它们可以通过其所记录的 Python 对象的__doc__属性访问。以下是写docstring的不同方式——

单行文件串

单行文档字符串用于简短且简单的文档记录。它们简明地描述了该函数或方法的作用。单行文档字符串应能在三引号内的一行内,并以句号结尾。

示例

在下面的例子中,我们使用单行docstring来写入文本−

def add(a, b): """Return the sum of two numbers.""" return a + b result = add(5, 3) print("Sum:", result)

多行文档字符串

多行文档字符串用于更详细的文档记录。它们提供了更全面的描述,包括参数、返回值及其他相关细节。多行文档以三引号开头和结尾,包含摘要行后接空白行和更详细的描述。

示例

以下示例使用多行文档字符串来解释代码 −

def multiply(a, b): """ Multiply two numbers and return the result. Parameters: a (int or float): The first number. b (int or float): The second number. Returns: int or float: The result of multiplying a and b. """ return a * b result = multiply(5, 3) print("Product:", result)

模块文档字符串

编写模块文档字符串时,将文档字符串放在模块顶部,紧接着导入语句之后。模块文档字符串概述了模块的功能,并列出其主要组件,如函数列表、类和模块提供的异常。

示例

在这个例子中,我们演示了 Python 中 docstring 用于模块的过程 −

import os """ This module provides Utility functions for file handling operations. Functions: - 'read_file(filepath)': Reads and returns the contents of the file. - 'write_file(filepath, content)': Writes content to the specified file. Classes: - 'FileNotFoundError': Raised when a file is not found. Example usage: >>> import file_utils >>> content = file_utils.read_file("example.txt") >>> print(content) 'Hello, world!' >>> file_utils.write_file("output.txt", "This is a test.") """ print("This is os module")

类文档字符串

类可以用文档字符串来描述它们的目的和用途。类内的每个方法也可以有自己的文档字符串。类docstring应提供该类及其方法的概览。

示例

在下面的示例中,我们展示了 Python 中 docstring 用于类的应用 −

class Calculator: """ A simple calculator class to perform basic arithmetic operations. Methods: - add(a, b): Return the sum of two numbers. - multiply(a, b): Return the product of two numbers. """ def add(self, a, b): """Return the sum of two numbers.""" return a + b def multiply(self, a, b): """ Multiply two numbers and return the result. Parameters: a (int or float): The first number. b (int or float): The second number. Returns: int or float: The result of multiplying a and b. """ return a * b cal = Calculator() print(cal.add(87, 98)) print(cal.multiply(87, 98))

访问文档字符串

Python 中的文档字符串是通过其所记录对象的__doc__属性访问的。该属性包含与对象相关的文档字符串(docstring),提供了访问和显示函数、类、模块或方法的目的和用途信息的方式。

示例

在下面的例子中,我们定义了两个函数,“加法”和“乘法”,每个函数都有文档字符串描述其参数和返回值。然后我们使用“__doc__”属性访问并打印这些文档字符串 −

# Define a function with a docstring def add(a, b): """ Adds two numbers together. Parameters: a (int): The first number. b (int): The second number. Returns: int: The sum of a and b. """ return a + b result = add(5, 3) print("Sum:", result) # Define another function with a docstring def multiply(x, y): """ Multiplies two numbers together. Parameters: x (int): The first number. y (int): The second number. Returns: int: The product of x and y. """ return x * y result = multiply(4, 7) print("Product:", result) # Accessing the docstrings print(add.__doc__) print(multiply.__doc__)

文档字符串编写的最佳实践

以下是用 Python 编写文档字符串的最佳实践 −

  • 清晰简洁 −确保文档字符串清楚说明代码的目的和用途,避免不必要的细节。

  • 使用正确的语法和拼写 −确保文档词汇写得好,语法和拼写正确。

  • 遵循约定 −使用文档字符串格式的标准惯例,比如 Google 风格、NumPy 风格或 Sphinx 风格。

  • 包含示例 −在适用的情况下,提供示例说明如何使用文档化的代码。

谷歌样式文档字符串

Google 风格的文档字符串通过缩进和标题提供了一种结构化的方式来记录 Python 代码。它们设计为通俗易读且信息丰富,遵循特定的格式。

示例

以下是带有 Google 风格 docstring 的函数示例 −

def divide(dividend, divisor): """ Divide two numbers and return the result. Args: dividend (float): The number to be divided. divisor (float): The number to divide by. Returns: float: The result of the division. Raises: ValueError: If `divisor` is zero. """ if divisor == 0: raise ValueError("Cannot divide by zero") return dividend / divisor result = divide(4, 7) print("Division:", result)

NumPy/SciPy 风格文档字符串

NumPy/SciPy 风格的文档字符串在科学计算中很常见。它们包含参数、返回和示例的章节。

示例

以下是一个带有 NumPy/SciPy 风格文档字符串的函数示例 −

def fibonacci(n): """ Compute the nth Fibonacci number. Parameters ---------- n : int The index of the Fibonacci number to compute. Returns ------- int The nth Fibonacci number. Examples -------- >>> fibonacci(0) 0 >>> fibonacci(5) 5 >>> fibonacci(10) 55 """ if n == 0: return 0 elif n == 1: return 1 else: return fibonacci(n-1) + fibonacci(n-2) result = fibonacci(4) print("Result:", result)

斯芬克斯风格的Docstring

Sphinx 风格的文档字符串兼容 Sphinx 文档生成器,并使用reStructuredText格式。

reStructuredText(reST)是一种用于创建结构化文本文档的轻量级标记语言。Sphinx 文档生成器以“reStructuredText”文件为输入,生成多种格式的高质量文档,包括 HTML、PDF、ePub 等。

示例

以下是一个带有斯芬克斯式docstring的函数示例 −

def divide(dividend, divisor): """ Divide two numbers and return the result. Args: dividend (float): The number to be divided. divisor (float): The number to divide by. Returns: float: The result of the division. Raises: ValueError: If `divisor` is zero. """ if divisor == 0: raise ValueError("Cannot divide by zero") return dividend / divisor result = divide(76, 37) print("Result:", result)

文档与评论

以下是 Python 文档字符串与注释之间的区别,重点关注它们的用途、格式、用法和可访问性 -

文件串评论
用于文档化 Python 对象,如函数、类、方法、模块或包。用于为人类阅读者注释代码、提供上下文或暂时禁用代码。
书写在三引号内(“”或“'),并紧接对象定义之后。以#符号开始,放置在与带注释代码同一行。
作为对象的属性存储,并可通过程序访问。在执行过程中,Python 解释器会忽略它,纯粹是为了人类理解。
通过对象的__doc__属性访问。无法通过程序访问;仅存在于源代码中。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 5:37:27

深度学习框架目标检测算法YOLOV8预训练模型训练海上落水人员及障碍物数据集建立基于深度学习YOLOV8海上落水人员检测系统 海上搜救无人机 - 智慧海事监控平台

海上落水人员及障碍物数据集,有500多张并已经标注好了txt格式。已经划分hao训练集和验证集,可直接训练,【来源自建】 2类【溺水人员,障碍物】11海上落水人员及障碍物检测数据集 的完整 YOLOv8 训练与检测系统方案,包含…

作者头像 李华
网站建设 2026/6/15 12:18:52

springboot美容院管理系统(11523)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告)远程调试控屏包运行 三、技术介绍 Java…

作者头像 李华
网站建设 2026/6/15 8:26:44

轻量化深度学习模型(EEGNet)

EEGNet是一种专为脑电图(EEG)信号处理设计的紧凑型卷积神经网络(CNN),核心定位是在资源受限场景下实现高效的脑电信号分类,尤其适用于脑机接口(BCI)领域。与传统深度学习模型相比&am…

作者头像 李华
网站建设 2026/6/15 11:25:10

PySide6从0开始学习的笔记(十) 样式表(QSS)

PySide6 的样式表(Qt Style Sheets,QSS)是模仿 CSS 语法的界面美化机制,用于统一控制 PySide6 控件的外观,从基础的颜色、字体到复杂的控件状态、自定义控件样式都能覆盖。一、QSS 基础核心1.1 基本语法结构QSS 语法与…

作者头像 李华
网站建设 2026/6/15 12:19:01

超越`.groupby().agg()`:深度解析Pandas聚合API的现代实践

好的,收到您的需求。我将基于您提供的随机种子(1766095200066),深入探讨Pandas聚合API中一些进阶、高效且常被忽视的用法,撰写一篇适合开发者阅读的深度技术文章。 超越.groupby().agg():深度解析Pandas聚合…

作者头像 李华