Python中的多行字符串和文档字符串

news2024/12/23 20:17:18

Python中的多行字符串和文档字符串

Python中,多行字符串和文档字符串都使用三引号(""" 或 ''')来定义。都可以跨越多行而不需要使用行连接符(\)。

多行字符串和文档字符串都可以利用转义符来调整格式——可以包含制表符(\t)等特殊字符。

文档字符串是多行字符串的一种特殊用法。

多行字符串(Multi-line String)

多行字符串(Multi-line String)官方称为三引号字符串(Triple-quoted string)。多行字符串是指在代码中创建的跨越多行(spanning multiple lines)的字符串。Python 中,多行字符串通常使用三引号(""" 或 ''')来包围。这样,你可以在字符串内部自由地使用换行符和其他字符,而不需要在每一行的末尾添加特殊字符(例如 \)。

示例:

multi_line_str = """这是一个多行字符串。

它可以跨越多行,

而且每一行都可以自动换行。"""

在上面的示例中,multi_line_str 是一个多行字符串,包含了多行文本。

文档字符串(Docstring)

文档字符串(Docstring)是 Python 中用于编写模块、类、方法或函数说明的一种特殊的多行字符串。文档字符串紧跟在模块、类、方法或函数的定义之后,用来描述其用途、参数、返回值等信息。文档字符串通常使用三引号(""")表示,并且能够被 Python 内置的帮助系统(如 help() 函数)读取。

示例:

def add(a, b):
    """
    这是一个加法函数。

    参数:
    a -- 第一个数
    b -- 第二个数

    返回:
    两个数的和
    """
    return a + b

在这个例子中,add 函数的文档字符串描述了函数的用途、参数和返回值。你可以通过 add.__doc__ 或 help(add) 来查看这个文档字符串的内容。

不同点:

a.用途:

多行字符串:主要用于表示普通的多行文本数据,可以赋值给变量。

文档字符串:专门用于为模块、函数、类或方法提供文档。

b.位置:

多行字符串:可以在代码中的任何地方使用。

文档字符串:通常位于模块、函数、类或方法定义的开始处(约定开始处)。

c.解释器处理:

多行字符串:被视为普通字符串。

文档字符串:被Python解释器特殊处理,存储在对象的__doc__属性中。

d.访问方式:

多行字符串:像普通变量一样访问。

文档字符串:可以通过__doc__属性或help()函数访问(如果文档字符串为空,则 __doc__ 属性返回 None)。且许多文档生成工具(如pdoc)会自动提取这些文档字符串来生成文档。

文档字符串中的转义符(例如\t等)与在字符串中的处理方式相同。

\t:制表符,插入一个水平制表符。

\u263A:Unicode字符☺。

多行字符串示例

multi_line_str = """这是第一行。
这是第二行,这里有一个\t制表符和\u263A。
这是第三行。"""
print(multi_line_str)

输出显示:

这是第一行。
这是第二行,这里有一个    制表符和☺。
这是第三行。

参见图示:

文档字符串示例

def example_function():
    """这是一个文档字符串示例。
在这行文本中,这里有一个\t制表符\u263A。
文档字符串的最后一行。"""
    pass

print(example_function.__doc__)

输出显示:

这是一个文档字符串示例。
在这行文本中,这里有一个    制表符和☺。
文档字符串的最后一行。

 

参见图示:

附、Python中的文档字符串(Docstrings)详解

 在Python中,文档字符串(Docstrings)是用三引号(""" 或 ''')定义的特殊字符串,用于为模块、类、方法或函数提供说明性文本。

定义:

文档字符串是出现在模块、函数、类或方法定义开头的字符串。它们用三重引号("""或''')包围。

注意,在开头,这是一个约定。Python解释器期望在这个位置找到文档字符串。

用途:

提供代码的说明和使用方法

可以通过内置的help()函数或对象的__doc__属性访问

用于自动生成文档

函数文档字符串例子

def calculate_area(length, width):
    """计算矩形面积。

    参数:
    length (float): 矩形的长度
    width (float): 矩形的宽度

    返回:
    float: 矩形的面积
    """
return length * width

访问文档字符串:

print(calculate_area.__doc__)

help(calculate_area)

类中的文档字符串例子

class Rectangle:
    """表示矩形的类。

    这个类用于创建和操作矩形对象。它提供了计算面积和周长的方法,
    以及修改矩形尺寸的能力。

    属性:
        length (float): 矩形的长度
        width (float): 矩形的宽度

    方法:
        area(): 计算矩形的面积
        perimeter(): 计算矩形的周长
    """

    def __init__(self, length, width):
        """初始化矩形实例。

        参数:
            length (float): 矩形的长度
            width (float): 矩形的宽度
        """
        self.length = length
        self.width = width

    def area(self):
        """计算并返回矩形的面积。

        返回:
            float: 矩形的面积
        """
        return self.length * self.width

    def perimeter(self):
        """计算并返回矩形的周长。

        返回:
            float: 矩形的周长
        """
        return 2 * (self.length + self.width)

  

访问词例子的文档字符串

1.使用 __doc__ 属性:

# 查看类的文档字符串

print(Rectangle.__doc__)

# 查看方法的文档字符串

print(Rectangle.area.__doc__)

print(Rectangle.perimeter.__doc__)

2.使用 help() 函数:

# 查看整个类的帮助信息,包括所有方法的文档字符串

help(Rectangle)

# 查看特定方法的帮助信息

help(Rectangle.area)

help(Rectangle.perimeter)

3. 创建实例并查看:

rect = Rectangle(5, 3)

print(rect.__doc__)  # 这会显示类的文档字符串

print(rect.area.__doc__)  # 这会显示area方法的文档字符串

另外,许多现代IDE(如PyCharm、VS Code)允许你将鼠标悬停在类或方法名上,就能看到其文档字符串。

模块的文档字符串例子:

一个名为 geometry.py 的简单模块,其中包含一些基本的几何计算函数。文件内容如:

"""几何计算模块

这个模块提供了一些基本的几何计算函数,包括圆和矩形的面积计算。

函数:
    circle_area(radius): 计算圆的面积
    rectangle_area(length, width): 计算矩形的面积

常量:
    PI: 圆周率的近似值

示例:
    >>> import geometry
    >>> geometry.circle_area(5)
    78.53981633974483
    >>> geometry.rectangle_area(4, 5)
    20
"""

import math

PI = math.pi

def circle_area(radius):
    """计算圆的面积。

    参数:
        radius (float): 圆的半径

    返回:
        float: 圆的面积
    """
    return PI * radius ** 2

def rectangle_area(length, width):
    """计算矩形的面积。

    参数:
        length (float): 矩形的长度
        width (float): 矩形的宽度

    返回:
        float: 矩形的面积
    """
    return length * width

访问这个模块的文档字符串:

1.使用 __doc__ 属性:

import geometry

# 打印模块的文档字符串

print(geometry.__doc__)

# 打印特定函数的文档字符串

print(geometry.circle_area.__doc__)

print(geometry.rectangle_area.__doc__)

2.使用 help() 函数:

import geometry

# 显示整个模块的帮助信息

help(geometry)

# 显示特定函数的帮助信息

help(geometry.circle_area)

help(geometry.rectangle_area)

3.在交互式环境中:

如果你在 Python 的交互式环境中(如 IDLE 的shell中),你可以直接输入:

import geometry

geometry

这会显示模块的文档字符串。

官方有关资料

https://docs.python.org/zh-cn/3/tutorial/introduction.html#text

https://docs.python.org/zh-cn/3/library/stdtypes.html#textseq

https://docs.python.org/zh-cn/3/tutorial/controlflow.html#documentation-strings

https://peps.python.org/pep-0257/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue3.0脚手架、路由、Element Plus安装案例:收录于Vue 3.0 后台管理系统案例

目录 环境配置 Vue 3.0 脚手架(Vite)安装 node版本查询与切换 创建一个vue应用 Vue Router安装 安装vue-router4 配置路由 安装配置 展示路由 Element UI安装 安装element-plus 引入element-plus 使用element-plus 用户登录 环境配置 Vue 3…

HarmonyOS(51) 应用沙箱目录和Context获取文件路径

文件目录 应用沙箱目录沙箱目录的分类应用文件目录结构应用文件路径详细说明ApplicationContext获取应用文件路径通过AbilityStageContext、UIAbilityContext、ExtensionContext获取HAP级别的应用文件路径切换el1和el2AreaMode简介 参考资料 应用沙箱目录 沙箱目录的分类 如下…

CUDA+tensorflow+python+vscode在GPU下环境安装及问题汇总与解答

2024.8.14 因为要做深度学习,需要安装tensorflowgpu的环境,每次都搞不好整的很生气,本次将安装过程中参考的一些大佬的博客和安装过程中遇到的问题及解决方案总结一下,希望以后不要在这件事情上浪费时间。安装环境其实也没有想象中…

迁移学习代码复现

一、前言 说来可能令人难以置信,迁移学习技术在实践中是非常简单的,我们仅需要保留训练好的神经网络整体或者部分网络,再在使用迁移学习的情况下把保留的模型重新加载到内存中,就完成了迁移的过程。之后,我们就可以像训练普通神经网络那样训练迁移过来的神经网络了。 我们…

浅谈SIMD、向量化处理及其在StarRocks中的应用

前言 单指令流多数据流(SIMD)及其衍生出来的向量化处理技术已经有了相当的历史,并且也是高性能数据库、计算引擎、多媒体库等组件的标配利器。笔者在两年多前曾经做过一次有关该主题的内部Geek分享,但可能是由于这个topic离实际研发场景比较远&#xff0…

使用大模型从政府公文中抽取指标数据

文章目录 介绍流程结构介绍相关文本筛选大模型 few-shot大模型抽取结果 介绍 本文使用LangChain 结合 Ollama的qwen2:7b模型,抽取出全国市级单位每一年预期生产总值指标。 Ollama的qwen2:7b,显存占用只有5G左右,适合大多数消费级显卡运行。…

华为云Api调用怎么生成Authorization鉴权信息,StringToSign拼接流程

请求示例 Authorization 为了安全,华为云的 Api 调用都是需要在请求的 Header 中携带 Authorization 鉴权的,这个鉴权15分钟内有效,超过15分钟就不能用了,而且是需要调用方自己手动拼接的。 Authorization的格式为 OBS 用户AK:…

zabbix agent 可用性 为 灰色

解决zabbix可用性为灰色状态 配置–》模板–》选择模板, 之后正常。

排序: 插入\希尔\选择\归并\冒泡\快速\堆排序实现

1.排序的概念及应用 1.1概念 排序:所谓排序,就是一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 1.2运用 购物筛选排序: 1.3常见排序算法 2.实现常见的排序算法 int a[ {5,3,9,6,2,4,7,1,8}; 2…

MySQL数据库专栏(三)数据库服务维护操作

1、界面维护,打开服务窗口找到MySQL服务,右键单击可对服务进行启动、停止、重启等操作。 选择属性,还可以设置启动类型为自动、手动、禁用。 2、指令维护 卸载服务:sc delete [服务名称] 例如:sc delete MySQL 启动服…

嵌入式软件开发学习一:软件安装(保姆级教程)

资源下载: 江协科技提供: 资料下载 一、安装Keil5 MDK 1、双击.EXE文件,开始安装 2、 3、 4、此处尽量不要安装在C盘,安装路径选择纯英文,防止后续开发报错 5、 6、 7、弹出来的窗口全部关闭,进入下一步&a…

STM32(一):新建工程

stm32f10x.h文件:描述stm32有哪些寄存器(外围)和它对应的地址。stm32由内核和内核外围的设备组成的,内核寄存器描述和外围寄存器描述文件存储位置不在一起core_cm3.h core_cm3.c内核寄存器描述文件。mic.c内核库函数 stm32f10x_co…

【初阶数据结构】通讯录项目(可用作课程设计)

文章目录 概述1. 通讯录的效果2. SeqList.h3. Contact.h4. SeqList.c5. Contact.c6. test.c 概述 通讯录项目是基于顺序表这个数据结构来实现的。如果说数组是苍蝇小馆,顺序表是米其林的话,那么通讯录就是国宴。 换句话说,通讯录就是顺序表…

pycharm windows/mac 指定多版本python

一、背景 工作中经常会使用不同版本的包,如同时需要tf2和tf1,比较新的tf2需要更高的python版本才能安装,而像tf1.5 需要低版本的python 才能安装(如 python3.6),所以需要同时安装多个版本。 二、安装多版本python py…

会员系统开发,检测按钮位置,按钮坐标,弹出指定位置对话框-SAAS 本地化及未来之窗行业应用跨平台架构

一 获取元素坐标 var 按钮_obj document.querySelector(#未来之窗玄武id);var 按钮_rect 按钮_obj.getBoundingClientRect()console.log(按钮_rect);输出结果 bottom : 35 height : 21 left : 219.921875 right : 339.921875 top : 14 width : 120 x : 219.921875 y…

R语言统计分析——组间差异的非参数检验

参考资料:R语言实战【第2版】 如果数据无法满足t检验或ANOVA的参数假设,可以转而使用非参数检验。举例来说,若结果变量在本质上就严重偏倚或呈现有序关系,那么可以考虑非参数检验。 1、两组的比较 若两组数据独立,可以…

大厂进阶五:React源码解析之Diff算法

本文主要针对React源码进行解析,内容有: 1、Diff算法原理、两次遍历 一、Diff源码解析 以下是关于 React Diff 算法的详细解析及实例: 1、React Diff 算法的基本概念和重要性 1.1 概念 React Diff 算法是 React 用于比较虚拟 DOM 树之间…

初识C++ · 类型转换

目录 前言: 1 C中的类型转换 1.1 static_cast 1.2 reinterpret_cast 1.3 const_cast 1.4 dynamic_cast 前言: C可以说是恨死了隐式类型转换,你可能会疑问了,为什么?不是单参数隐式类型转换为自定义类型的时候人…

苹果笔记本电脑可以玩steam游戏吗 MacBook支持玩steam游戏吗 在Steam上玩黑神话悟空3A大作 苹果Mac怎么下载steam

游戏是生活的润滑剂,越来越多的用户开始关注Mac平台上可玩的游戏。幸运的是,Steam作为最大的数字发行平台之一,提供了大量适用于Mac操作系统的游戏。无论你是喜欢策略、冒险还是射击类游戏,都能在Steam上找到适合自己Mac设备玩耍的…

ESP32CAM人工智能教学18

ESP32CAM人工智能教学18 获取数据并显示 如果我们给ESP32Cam外挂一些传感器(比如温湿度传感器、超声波测距传感器、红外人体传感器等),我们怎么把ESP32Cam捕获到的数据,传递到客户端的浏览器,并在网页index.html中显示…