高效编写 Python 文档的方法

python-docx 基础知识、引言篇 源于一次我们单位领导的神奇需求,我认识了一个利用Python语言处理Word的神器,即为本专栏所介绍的:python-docx。我所在单位是一家与网络安全相关的单位,平时总会为第三方公司出具大批量的报告,客户总会冒出来很多奇奇怪怪、亟待解决、消耗很多人力、又非常简单的需求,比如他会突然给我们一个模板,让我们按照给定的模板,出1000份报告,这个模板中70%,甚至80%以上的内容,都是一样的,我们要做的就是按照模板,修改其中那20%-30%的差异部分。 阅读详情

找到一种有效的方法来记录代码总是很重要的。挑战在于开发一种全面而简单的Python代码开发方法。让我们先看看Python注释,然后再看看文档字符串(docstring)。

Python 中的注释

与文档字符串相反,Python注释对运行时编译器不可见。它们被用作解释代码的注释。注释在Python中以 # 符号开头,如下所示:

# 这是一行注键,对运行时编译器不可见
print("Hello, world")

文档字符串 Docstring

记录代码的主要工具是称为docstring的多行注释块。Python语言的一个特点是DocStrings与对象相关联,可供检查。DocStrings的指南在Python增强提案(PEP)257中进行了描述。根据指南,其目的是为读者提供概述。它们应该在简洁和详细之间保持良好的平衡。DocStrings使用三重双引号字符串
格式或三重单引用格式:(""" 或 ''')。

以下是创建文档字符串时的一些一般准则:

  • 文档字符串应放在函数或类定义之后。
  • 文档字符串应该有一行摘要,后面是更多详细描述。
  • 应有策略地使用空白来组织评论,但不应过度使用。您可以使用空行来组织代码,但不要过度使用它们。
    在接下来的部分中,让我们来看看docStrings的更详细的概念。

文档字符串类型

在开发代码时需要生成各种类型的文档,包括以下内容:

  • 逐行注释;
  • 功能或类级文件;
  • 算法细节;

让我们逐一讨论它们。

逐行注释

文档字符串(docstring)的一个简单用途是使用它创建多行注释,如下所示:

"""
这是一个注释,
写在两行里。
这是对上面的补充。
"""
print("Hello,world")
函数和类级文档

文档字符串的一个强大用途是用于功能或类级文档。如果我们将文档字符串放在函数或类的定义之后,Python会将docstring与函数或类相关联。它被放置在该特定函数或类的__doc__属性中。我们可以在运行时通过使用__doc__属性或使用help函数打印出来,如下例所示:

def double(n):
	'''返回 n 的两倍的值'''
	return n * 2

print(double.__doc__) # 输出:返回 n 的两倍的值
help(double)

上面的 help(double) 输出内容很多,单独列出来:

Help on function double in module __main__:

double(n)
    返回 n 的两倍的值

当使用文档字符串来记录类时,推荐的结构如下:

  • 摘要:通常为单行
  • 第一个空白行
  • 关于文档字符串的任何进一步解释
  • 第二个空白行
    这里显示了在类级别使用文档字符串的示例:
class ComplexNumber:
    """
    这是一个关于复数的数学运算类。
    
    属性:
      real(int):复数的实部。
      imag(int):复数的虚部。
    """
    
    def __init__(self, real, imag):
        """
        ComplexNumber 类的构造函数。
        
        形参:
            real(int):复数的实部。
            imag(int):复数的虚部。
        """
        
    def add(self, num):
        """
        把两个复数加在一起的函数
        
        形参:
            num(ComplexNumber): 加数
        
        返回:
            ComplexNumber: 表示和的结果复数

        """
        
        re = self.real + num.real
        im = self.imag + num.imag
        
        return ComplexNumber(re, im1)
算法细节

Python项目越来越多地使用描述性或预测性分析和其他复杂的逻辑。所使用的算法的细节需要与所做的所有假设一起明确规定。如果一个算法被实现为一个函数,那么编写算法逻辑摘要的最佳位置是在函数签名之前。

<结束>

简洁高效的Python后端代码编写指南 例如,如果您需要存储大量数据并频繁进行插入和删除操作,那么使用列表可能不是最佳选择,因为列表的插入和删除操作的时间复杂度为O(n)。将代码划分为逻辑上独立的函数和模块,可以提高代码的可读性、复用性和测试性。对于函数和类,应该提供清晰的文档,包括函数的输入参数、返回值和功能描述。在处理异常时,应该尽量提供详细的错误信息和适当的错误处理逻辑,以便于调试和排查问题。良好的文档和注释是协助他人理解和使用您的代码的重要工具。在编写后端代码时,应该养成良好的文档编写习惯,以及对代码进行适当的注释。 阅读详情

相关推荐

将数据库数据自动导入Word文档的实践方法

VBA(Visual Basic for Applications)是一种事件驱动的编程语言,主要嵌入在Microsoft Office套件中,允许用户自定义Office应用程序的自动化任务。VBA 可以执行的功能包括但不限于:自动化重复性的任务、访问系统对象和控件、以及对Office文档(如Word、Excel等)进行复杂操作。在Office自动化中,VBA提供了广泛的可能性,从简单的任务(如数据输入和格式设置)到复杂的任务(如创建对话框、从其他应用程序导入数据等)。

weixin_28931449的博客 1378

超详解——Python模块文档——基础篇

在Unix系统中,脚本文件通常以 #!/usr/bin/env python3 开头,表示使用 python3 解释器来运行脚本。这一行称为“shebang”。它告诉操作系统这个脚本应使用哪个解释器来运行。

小李很执着的博客 1655

掌握Python核心函数与方法

本文旨在总结和解读Python编程语言中的核心函数和方法。通过对章节内容的梳理,我们将探讨常见的Python函数,例如索引错误处理、输入输出、数据类型转换、集合操作等。这些函数和方法是Python编程的基础,对任何希望提高编程技能的开发者来说都至关重要。文章不仅列举了这些函数和方法,还对其使用场景、参数和返回值进行了详细说明,辅以实例加深理解。

weixin_42146230的博客 341

python文档学习

1. python文档学习 1.1. python解释器 1.1.1. 传入参数 1.1.2. 交互模式的提示符 1.2. python数据类型与运算符 1.2.1. 数字类型 1.2.2. 集合(set) 1.2.3. 序列 1.2.3.1. 字符串类型(str) 1.2.3.2. 列表(list) 1.2.3.3. 元组(tuple) 1.2.4. 字典(dict) 1.2.5. 运算符 1.3. 控制流 1.3.1. 选择 1.3.2. 循环 1.3.2.1. 对象方法在循环.

SSS 4009

Sphinx简体中文教程完整指南.pdf

Sphinx是一个广泛应用于Python项目的文档生成工具,它通过读取源代码中的文档字符串和注释,自动生成整洁、规范的文档。借助其强大的扩展系统和主题,Sphinx能够生成包括HTML、LaTeX和PDF在内的多种格式的文档。在本章中,我们将介绍Sphinx的起源、优势、以及它的核心功能。Sphinx的设计理念是为了使文档的创建既简单又高效。它支持reStructuredText(reST)这种轻量级标记语言,让用户能够专注于内容的编写而非格式化。

weixin_42518874的博客 598

Python基础编程与PyCharm实践指南

PyCharm内置的性能分析工具可以帮助开发者识别代码中的性能瓶颈。通过它,你可以查看函数调用的次数、运行时间和内存消耗等信息。性能分析的一个简单例子,考虑下面的代码片段:total = 0# 假设有一个很大的数字列表你可以使用PyCharm的性能分析工具来运行这段代码,并查看其性能数据。通过分析,你可以决定是否需要优化这段代码,例如使用更高效的算法。

weixin_29069575的博客 1119

python学习文档(自用)

python基础学习自用文档

qq_44813770的博客 2632

Imputation Methods for scRNA Sequencing Data

越来越多的研究者使用单细胞RNA测序(scRNA-seq)技术来表征单细胞水平的转录图谱。他们用它来研究复杂组织的异质性、转录组动力学和未知生物的多样性。然而,在基因表达模式随机性的scRNA-seq数据中普遍存在许多技术和生物学上的噪音。这些数据通常具有高维、稀疏和大量“dropout”值的特点,并且受批处理效应的影响。scRNA-seq数据中大量的“dropout”值严重掩盖了基因之间的重要关系,阻碍了下游分析。因此,scRNA-seq数据dropout值的估算就显得尤为重要。

qq_34179307的博客 540

Python基础学习文档

字典(dict):无序的键值对集合,如my_dict = {"name": "Alice", "age": 25}。数据类型:包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)等。元组(tuple):不可变的有序集合,如my_tuple = (1, 2, 3)。集合(set):无序的不重复元素集合,如my_set = {1, 2, 3}。列表(list):可变的有序集合,如my_list = [1, 2, 3]。算术运算符:+、-、*、/、//(整除)、%(取模)。

weixin_63780361的博客 954

DeepSeek + 番茄小说:AI辅助小说开发最全指南

DeepSeek与番茄小说合作推出AI辅助小说创作系统,通过DeepSeek的文本生成能力(包括情节构建、角色塑造等)结合番茄小说的市场数据,为作者提供从创意到发布的全流程支持。系统包含智能创意生成器、角色设计、章节自动生成等核心模块,采用数据驱动优化策略,支持128K长文本处理和多风格模仿。开发架构采用Python+FastAPI技术栈,提供分层审核机制确保质量。该系统可帮助作者突破创作瓶颈,提升效率,同时提供订阅制、内容分成等多元变现模式。需注意版权问题和原创性保证。

weixin_41445009的博客 1672

Outlook日历同步全攻略:Win10+安卓+iOS三端无缝衔接(附常见问题解决)

本文提供了一份详尽的Outlook日历同步指南,帮助用户在Windows 10、安卓和iOS三端实现无缝衔接。文章深入解析了Exchange ActiveSync等核心同步原理,并给出了从账户创建到各设备(特别是华为手机)的具体配置步骤、进阶管理技巧以及针对同步失败、事件重复等常见问题的实战解决方案,旨在彻底解决跨平台日程管理的痛点。

l3m4n的博客 551

掌握Python Markdown新利器:markdown-it-py,让文档处理更高效!

在技术文档和写作需求日益增长的今天,Markdown以其简洁明了的语法成为了开发者和作家的首选文本格式。但你是否曾想过,如何将Markdown文本转换为结构化的HTML,以便于在Web上展示?这就是库的用武之地。它不仅让Markdown解析变得轻而易举,而且扩展了无限可能,让我们一探究竟!是一个强大的Python库,它不仅遵循CommonMark规范,提供高度的规范兼容性和解析准确性,而且通过其精心设计的API,你可以轻松配置或扩展语法规则,满足基础的Markdown特性和特定于项目的定制化需求。

AIGC搞起 2878

【液晶专题】从外挂到In-Cell/ On-Cell/ OGS再也不会傻傻分不清楚了

触控技术经历了从外挂式到内嵌式的革新,主要方案包括外挂式(Out-Cell)、OGS、On-Cell和In-Cell。

一点硬件 1252

零代码搞定Python-Binance接口文档:pdoc自动生成全攻略

你还在手动编写API文档?面对频繁更新的接口束手无策?本文将带你用3行命令实现Python-Binance项目接口文档的自动化生成,彻底摆脱重复劳动。读完你将掌握:环境配置技巧、文档生成全流程、高级定制方案以及常见错误解决方法。 ## 环境准备 ### 安装依赖包 项目核心依赖管理文件[requirements.txt](https://link.gitcode.com/i/5065d0f28

gitblog_01123的博客 1036

ComfyUI实战:AnimateDiff与ControlNet结合,打造无缝风格化视频转绘

本文详细介绍了如何利用ComfyUI平台,结合AnimateDiff与ControlNet插件,实现高质量的视频风格化转绘。通过搭建节点工作流、调整关键参数,有效解决画面闪烁与失真问题,并分享了进阶玩法与常见问题解决方案,帮助用户轻松打造流畅、风格统一的动态视觉效果。

weixin_29039773的博客 335

CentOS 7 安装 Python 3.10

我这里已经软链接了,正常未链接之前是python->python2.7而不是python3.10。python2.7默认安装是在 /usr/bin目录中,切换到/usr/bin/更改yum配置,因为其要用到python2才能执行,否则会导致yum不能正常使用。2. 安装 Python 3.10 必需的 openssl >= 1.1.1。默认的centos7是没有安装pip,先添加epel扩展源。/usr/bin/python 修改为如下。添加软链接,将原来的链接备份。添加python3的软链接。

bensonyang888的博客 2905

书写文档使用的工具

最近有个需求就是书写接口文档 眼下的解决方案是直接书写github仓库的readme文档,或者书写仓库的wiki,事实上我也是这么做的 但是python下有python的方式,这篇博客很好的说明了怎么书写文档的工具 想要了解有关python的事情不如去上python官网的wiki上找找看,看看这个wiki就讲述了关于python写文档的事情 一些资源: http://my.phir...

weixin_30832405的博客 133

基于NSGA2算法的无人机三维路径规划MATLAB实现

传统的路径规划方法多采用启发式搜索算法,然而这些方法往往带着局限性,不能有效地克服无人机飞行任务中所遇到的复杂环境与约束。而基于遗传算法的NSGA2(Non-dominated Sorting Genetic Algorithm II)方法则可以在优化目标之间找到最好的平衡点,是一种十分优秀的解决方案。本文介绍了基于NSGA2算法的无人机三维路径规划MATLAB实现。NSGA2算法是一种多目标优化算法,通过非支配排序和拥挤度距离来评估个体的适应度和选择新个体,从而产生一组非支配解。3.选择新个体组成P1;

CyberLynxX的博客 982

Python 高手编程系列二千零七十七:链接

用 Python 做事情(参考 http://code.activestate.com/recipes/langs/python/)。docs.djangoproject.com/en/1.9/intro/tutorial01/)解释如何使用 Django 构建应用程序。模块的 docstring 的目的是可以在模块的顶部写入文本。一个技巧(recipe)文档解答一个非常具体的问题,并提供一个解决方案来解决问题。这是框架应用程序中的文档的。● 教程:这是一个逐步的文档,说明如何使用软件的功能。

2301_77888392的博客 933

Win11更新导致TIA博途许可证出现问题的解决办法汇总

Win11更新导致TIA博途许可证出现问题的解决办法汇总

Robot_PLC_HMI_Automation 9890

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VSCODE编写python代码的注释快捷键

后按回车,VS Code 会自动生成多行字符串模板(常用于函数/类的说明)。逐行注释,或通过三个引号创建字符串(非执行,但非严格意义上的注释)。:选中多行后使用单行注释快捷键,VS Code 会自动为每一行添加。关闭与 VS Code 冲突的软件(如某些输入法或全局快捷键工具)。通过以上操作,你可以高效管理代码注释,提升开发效率!检查是否选中了代码(未选中时默认注释光标所在行)。Python 没有原生的多行注释语法,建议使用。后按回车,可自动生成参数、返回值等注释模板。,再次按相同快捷键可取消注释。

小宝哥Code的专栏 3532

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Python 高手编程系列二千一百七十五:使用现实中的代码示例

Foo 和 bar 是坏成员。当读者试图通过一个使用示例来理解一段代码如何运行时,不切实际的示例会让代码难以理解。为什么不使用现实中的例子?通常的做法是确保每个代码示例都可以剪切并粘贴到一个真正的程序中。

2301_77888392的博客 647

第26篇:Python开发进阶:Python最佳实践与代码优化

第26篇:Python开发进阶:Python最佳实践与代码优化

编程技术探索者,分享C/C++、C#、Java、数据库等开发经验,聚焦实战技巧与AI兴趣,助力编程爱好者成长。 2211

说一点学习python的心得

点击上方“早起python”,关注公众号满满干货,极速送达本文非技术型文章,仅是一些学习python的心得、感悟,希望能帮到正在学习python的小白和小小白们。选择合适的IDE在这里不去...

早起Python 624

编写高质量python代码的59个有效方法pdf_关于写出高效Python代码的若干建议 (下) (Effective Python)

这里是<编写高质量Python代码的59个有效方法>的笔记(上半部分), 对于其中的59个Tips, 选取了部分, 做了浓缩和精炼, 并在适当的地方做了补充说明. 需要注意的是, 每个人使用python的场景, 习惯和合作伙伴都不同, 因此对于原书中的建议我根据自身情况做了删减和修改, 希望读者在阅读时也不要将这些建议奉为圭臬, 而需要知其所以为而化为自己的习惯.上集内置模块用func...

weixin_39594296的博客 243
上一篇: 使用 wxWdigets 时发现的好玩的事情--VC++ 编译器怎么找到 WinMain 或 wWinMain 函数
下一篇: Python 中类属性和实例属性的区别
dowhileprogramming
博客等级 码龄25年 512粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dowhileprogramming

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值