当前位置: 首页 > article >正文

python numpydoc

NumPyDoc这东西说起来其实就是Python文档社区给NumPy写的那套文档风格指南。你可能见过那种函数定义下面写着Parameters、Returns、Raises的注释块那就是它的产物。NumPy的开发者们当年面对各种科学计算库的文档乱象决定搞一套规范出来。现在它已经成了数据科学界约定俗成的文档风格和Google风格、Sphinx风格并列。1他是什么简单说就是一套结构化的注释模板。不是随便写的它规定了你在函数、类、模块的文档字符串里该写哪些章节每个章节的内容应该长什么样。比如你写个函数做数据清洗按照NumPyDoc风格你得写上函数干什么用的参数有哪些参数名、类型、含义返回什么返回类型、含义可能抛出什么异常还有例子这套风格的好处是清晰、结构化比某些项目里随便写写“这个函数用来处理数据”要强得多。写出来之后你的IDE能识别这些标签自动提示参数和返回内容。Sphinx文档生成器也能直接解析它生成漂亮的文档页面。2他能做什么主要是三件事。第一让你的代码自解释。比如你三个月后回头看自己写的代码打开那个csv文件预处理函数看到Parameters下面写着file_path: str, 输入文件的路径支持相对路径和绝对路径比看一堆args、kwargs游走天地要清晰。第二让IDE给你打工。PyCharm、VSCode这些编辑器能识别NumPyDoc风格的文档字符串。你敲函数名的时候IDE会弹出参数提示里面有你的文档里的内容。这等于把文档直接嵌入了开发流。第三自动生成文档。你在项目里写好了文档运行sphinx-build它会自动抓取这些文档块生成网页或者PDF格式的参考文档。知乎上那些看着像官方文档的Python库很多就是这么来的。另一个很多人忽略的点它强制你思考你的函数的接口。你得想清楚每个参数的类型、含义、默认值。这个思考过程本身就能帮你提前发现设计缺陷。3怎么使用拿一个实际的例子来说。假设你写了个函数把摄氏温度和华氏温度互转。deftemp_convert(value,from_unitC): 温度单位的转换。 支持摄氏度和华氏度之间的相互转换。 转换公式来自热力学定义。 Parameters ---------- value : float 待转换的温度值。 from_unit : str, optional 输入温度的单位C 表示摄氏度F 表示华氏度。 默认为 C。 Returns ------- float 转换后的温度值。 Raises ------ ValueError 如果 from_unit 不是 C 或 F。 Examples -------- temp_convert(100, C) 212.0 temp_convert(32, F) 0.0 iffrom_unitnotin(C,F):raiseValueError(fUnsupported unit:{from_unit})iffrom_unitC:returnvalue*9.0/5.032else:return(value-32)*5.0/9.0注意几个细节第一行是摘要一句话说完这个函数是干什么的。空行之后写详细的描述可以有多个段落。Parameters 下面参数名和类型写在一行用冒号隔开或者用空格隔开但冒号更常见。然后下一行缩进写描述。Returns 的写法和 Parameters 类似。Raises 可选但如果你的函数可能会抛出异常建议写上。4最佳实践有些地方容易出现理解偏差分享一下实际经验。第一个别把参数描述写成废话。“value输入参数”这种写法等于没写。应该写清楚这个参数的物理意义、取值范围、单位。比如上面的“待转换的温度值”虽然简单但已经比“value: 一个数字”强。第二个类型标注尽量具体。float或int可以写清楚别动不动就写Any。如果参数可以是多种类型用float or int或者Union[float, int]。第三个Examples 部分真的很有用。写一个或两个典型用法能帮使用的人省掉10分钟的试错时间。而且这些例子能用doctest库自动化测试一举两得。第四个文档要和代码一起维护。改代码忘了改文档这种事太常见了。建议在代码审查的时候把文档修改当成必须项。第五个注意不要过度文档。一些小函数或者私有函数以单下划线开头的那种可以写简单点甚至不写完整的NumPyDoc。公有的API函数才需要写全。否则项目注释量会变得很夸张反而影响阅读。5和同类技术对比最常拿来比较的是Google风格和Sphinx风格。Google风格的写法deftemp_convert(value,from_unitC):温度单位的转换。 Args: value (float): 待转换的温度值。 from_unit (str, optional): 输入温度的单位。 默认为 C。 Returns: float: 转换后的温度值。 Raises: ValueError: 如果 from_unit 不是 C 或 F。 Sphinx风格reStructuredText格式deftemp_convert(value,from_unitC):温度单位的转换。 :param value: 待转换的温度值。 :type value: float :param from_unit: 输入温度的单位。默认为 C。 :type from_unit: str :returns: 转换后的温度值。 :rtype: float :raises ValueError: 如果 from_unit 不是 C 或 F。 个人感觉NumPyDoc 可读性最好参数和返回值的描述都在独立的段落里一眼就能看到关键信息。特别是参数很多的时候Google风格的Args:部分会挤在一起而NumPyDoc用空行分隔更清楚。Google风格简洁适合小函数或者快速写注释的场景。但参数类型和描述写在一行如果参数多了会有点乱。Sphinx风格的冒号标记法写起来很快但可读性稍差。现在用的人相对少一些。选哪种风格主要看团队习惯。如果已经是NumPy生态的老项目NumPyDoc是自然选择。Google风格现在在Python社区也挺流行Google自己的开源项目都是这个风格。Sphinx风格主要是兼容性的考虑老项目里比较多见。最终效果上三种风格都能被Sphinx正确解析生成文档差别主要是阅读时的体验和书写时的习惯。我自己倾向于NumPyDoc因为参数和返回值的段落分隔让它看起来像一本书的章节而不是一行行的标签。

相关文章:

python numpydoc

NumPyDoc,这东西说起来其实就是Python文档社区给NumPy写的那套文档风格指南。你可能见过那种函数定义下面写着Parameters、Returns、Raises的注释块,那就是它的产物。 NumPy的开发者们当年面对各种科学计算库的文档乱象,决定搞一套规范出来。…...

利用 taotoken 多模型能力构建 a b 测试内容生成流水线

利用 Taotoken 多模型能力构建 A/B 测试内容生成流水线 1. 多模型 A/B 测试的价值与场景 在内容运营与产品迭代过程中,生成式 AI 已成为提升效率的关键工具。不同模型对同一提示词(prompt)的响应可能存在显著差异,这种差异直接影…...

Applera1n:iOS设备离线激活锁绕过终极解决方案

Applera1n:iOS设备离线激活锁绕过终极解决方案 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 在iOS设备管理领域,激活锁绕过一直是技术专家和开发者关注的核心难题。Applera1n…...

python markdown

# Python Markdown 那些事:一个老程序员的自用笔记 记得刚接触Python Markdown那会儿,正赶上要给项目写文档。团队里有人用Sphinx,有人用Jupyter,吵得不可开交。最后我默默掏出Python Markdown写了份技术手册,三页纸解…...

3个创意场景:用Audacity把普通音频变成专业作品

3个创意场景:用Audacity把普通音频变成专业作品 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 你是否曾想过,那些听起来平平无奇的录音,其实只需要几个简单的步骤就能焕然一新…...

7种专业模式:OBS Advanced Timer如何彻底改变直播时间管理体验?

7种专业模式:OBS Advanced Timer如何彻底改变直播时间管理体验? 【免费下载链接】obs-advanced-timer 项目地址: https://gitcode.com/gh_mirrors/ob/obs-advanced-timer 你是否曾在直播过程中手忙脚乱地查看时间,担心超时或错过重要…...

Steam游戏自动破解终极指南:如何用SteamAutoCrack重新想象游戏自由

Steam游戏自动破解终极指南:如何用SteamAutoCrack重新想象游戏自由 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack 你是否曾为合法购买的Steam游戏无法在离线环境下运行而困…...

微信聊天记录永久保存指南:用WeChatMsg打造你的数字记忆博物馆

微信聊天记录永久保存指南:用WeChatMsg打造你的数字记忆博物馆 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/…...

微信小游戏实现汉字找茬找梗游戏(完整源码+详细教程)

先看效果:找茬找汉字闯关王 点击或则搜索即可。 一、项目介绍 汉字找茬、汉字找梗是当下热门的休闲益智类小游戏,依靠文字纠错、趣味识梗、诗词改错玩法,操作简单、趣味性强,十分适合作为微信小程序入门练手项目。 本文基于原…...

别再手动FTP了!用Java NFS Client把远程服务器文件当成本地目录来操作

告别FTP低效操作:Java NFS Client实现远程文件本地化编程实践 每次手动拖拽文件到FTP客户端时,你是否想过——这些重复操作本可以自动化完成?在分布式系统成为标配的今天,直接操作远程服务器文件应当像访问本地目录一样自然。本文…...

初创团队如何利用Taotoken低成本启动ai产品原型开发

初创团队如何利用Taotoken低成本启动AI产品原型开发 1. 资源有限情况下的技术选型挑战 初创团队在验证AI产品创意时,常面临模型选型与成本控制的双重压力。直接对接各大模型厂商需要分别申请API、管理多个密钥,且不同模型的计费方式和接口规范差异显著…...

Qt 5.15.2安装后,你的第一个‘Hello World’程序为什么跑不起来?常见环境配置坑点排查

Qt 5.15.2安装后"Hello World"程序运行失败的深度排查指南 当你满怀期待地完成Qt 5.15.2安装,准备编写第一个"Hello World"程序时,却发现项目无法构建或运行——这种挫败感我深有体会。作为从Qt 4.8时代一路走来的开发者&#xff0c…...

当DF-GAN遇上牛津花卉:从CUB-Bird迁移到Oxford-102的代码改造实战

DF-GAN模型迁移实战:从鸟类生成到花卉生成的深度改造指南 当你第一次尝试将训练好的DF-GAN模型从CUB-Bird数据集迁移到Oxford-102花卉数据集时,可能会遇到各种令人困惑的错误信息。这不是简单的数据集替换问题,而是需要深入理解两个数据集在结…...

WinClaw:Go语言实现的Windows轻量级自动化库实战指南

1. 项目概述:一个Windows环境下的轻量级自动化利器最近在折腾一些Windows环境下的自动化任务,比如批量重命名文件、定时清理日志、自动整理桌面截图,或者是一些需要重复点击的简单GUI操作。一开始想着用Python写脚本,但涉及到UI自…...

DeepSeek 上线识图模式迈向多模态交互,虽晚一步但表现仍值得期待

DeepSeek 上线识图模式,开启多模态交互新时代4 月 29 日,DeepSeek 网页版和 App 悄然上线了 "识图模式",支持上传图片进行内容理解与分析。这一功能的灰度测试,标志着 DeepSeek 从纯文本对话正式迈向多模态交互。在 Dee…...

腾讯混元推出极致量化压缩版翻译模型 Hy-MT1.5,440MB 本地运行,翻译质量超谷歌!

腾讯混元宣布推出极致量化压缩版本翻译模型 Hy-MT1.5-1.8B-1.25bit,将支持 33 种语言的翻译大模型压缩至 440MB,可在手机本地运行,且翻译质量优于谷歌翻译。模型特性:多语言支持与出色效果Hy-MT1.5 由腾讯混元团队打造&#xff0c…...

AI浪潮下中国PCB产业逆袭:从规模领先到技术争先,五大龙头各显神通

【导语:全球PCB产业聚光灯聚焦中国企业,它们正从“规模领先”迈向“技术争先”。本文深入剖析中国本土PCB军团竞争格局,对比五大龙头厂商发展模式,还展望了产业未来投资方向。】中国PCB厂商:从“大而不强”到生态位跃迁…...

AI“共情怂恿”致多起悲剧,普通人该如何与AI正确相处?

AI“魅魔”引发的致命悲剧上个月,美国联邦法院审理了一起特殊案件,36岁男子乔纳森为与谷歌大模型Gemini“转世相守”选择自杀,其父亲代表遗产方对谷歌提起诉讼。在生命最后56天里,乔纳森与被他命名为“Xia”的Gemini进行了4732条深…...

摩尔线程首份财报:营收高增但盈利待考,破局需拓展商业客群

摩尔线程披露首份年报及一季报4月26日晚间,摩尔线程披露上市以来首份年报及2026年一季报。据财报,其2025年全年营收15.06亿元,同比增长243.37%;2026年一季度营收7.38亿元,同比增长155.35%。营收增长与股价表现财报数据…...

如何精确计算3D模型体积?这个开源工具让你告别打印材料浪费

如何精确计算3D模型体积?这个开源工具让你告别打印材料浪费 【免费下载链接】STL-Volume-Model-Calculator STL Volume Model Calculator Python 项目地址: https://gitcode.com/gh_mirrors/st/STL-Volume-Model-Calculator 你是否曾经因为3D打印材料估算不准…...

2026年阿里云部署OpenClaw/Hermes Agent教程+百炼token Plan全流程攻略教程

2026年阿里云部署OpenClaw/Hermes Agent教程百炼token Plan全流程攻略教程 。OpenClaw和Hermes Agent是什么?OpenClaw和Hermes Agent怎么部署?如何部署OpenClaw/Hermes Agent?2026年还在为部署OpenClaw和Hermes Agent到处找教程踩坑吗&#x…...

GitHub加速插件:3分钟告别龟速下载,让代码克隆快如闪电

GitHub加速插件:3分钟告别龟速下载,让代码克隆快如闪电 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 还在…...

实测 Taotoken 多模型聚合服务的延迟与稳定性表现

实测 Taotoken 多模型聚合服务的延迟与稳定性表现 1. 测试环境与准备 本次测试基于开发者日常使用场景,采用以下配置进行实测: 网络环境:家庭宽带与移动网络混合接入测试工具:curl 命令直接调用 API监控工具:Taotok…...

告别编译噩梦:用VSCode + CMake Tools插件无缝对接Visual Studio编译器(Win10/Win11实测)

告别编译噩梦:用VSCode CMake Tools插件无缝对接Visual Studio编译器(Win10/Win11实测) 在Windows平台上开发C项目时,许多开发者都面临一个两难选择:是使用功能全面但略显笨重的Visual Studio IDE,还是选择…...

3分钟学会:Windows电脑安装安卓应用的终极免费方案

3分钟学会:Windows电脑安装安卓应用的终极免费方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 还在为在Windows电脑上运行安卓应用而烦恼吗&#xff1f…...

科研/工作刚需|GEE完整学习路径(环境搭建→数据处理→10大案例→可视化

模块一: 遥感云计算基础与开发环境1.1 遥感云计算概述1.1.1 Earth Engine平台与生态系统GEE平台架构与技术特点Google Earth AI平台介绍与AlphaEarth Foundations模型原理与其他云计算平台(Microsoft Planetary Computer、PIE-Engine等)比较典型应用场景…...

大型语言模型推理评估与训练优化实践

1. 大型推理模型评估框架解析在人工智能领域,大型语言模型(LLM)的推理能力评估一直是研究热点。R-HORIZON评估框架的提出,为全面测试模型在代码生成和代理任务等复杂场景中的表现提供了系统化解决方案。这套评估体系的核心价值在于其多维度的测试维度设计…...

Agent 一接浏览器下载就开始拿错文件:从 Download Binding 到 Artifact Ledger 的工程实战

⚠️ 下载链路最危险的错,不是按钮点不动,而是拿到了“看起来像对的文件” 很多团队把 Browser Agent 接到报表导出、合同归档和工单附件流转后,最隐蔽的事故不是下载失败,而是下载成功却拿错了对象。⚠️ 用户明明在客户 A 的页面…...

2025年Mac应用清理新选择:Pearcleaner开源工具深度解析

2025年Mac应用清理新选择:Pearcleaner开源工具深度解析 【免费下载链接】Pearcleaner A free, source-available and fair-code licensed mac app cleaner 项目地址: https://gitcode.com/gh_mirrors/pe/Pearcleaner 在macOS系统中,应用卸载往往留…...

如何在单张 RTX 3090 上让 Qwen3.5-27B token 生成速度提升 6 倍

本文系 trycua 团队的工程实践分享,Cua 是由该团队打造的一个面向 macOS 设计的开源 AI Agent 框架。下文采用第一视角来讲述他们在 RTX 3090 上的提速实践。 我们为 Qwen3.5-27B Q4_K_M 构建了一个独立的 C/ggml 投机解码器(speculative decoder&#x…...