news 2026/6/13 12:51:54

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python 高手编程系列三千三百七十五:使用现实中的代码示例

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

from atomisator.parser import parse

让我们使用它:

stuff = parse(‘some-feed.xml’)
next(stuff)
{‘title’: ‘foo’, ‘content’: ‘blabla’}
一个更好的例子是解析器知道如何返回一个带有 parse 函数的 feed 内容,可用作顶层函数:
from atomisator.parser import parse

让我们使用它:

my_feed = parse(‘http://tarekziade.wordpress.com/feed’)
next(my_feed)
{‘title’: ‘eight tips to start with python’, ‘content’: ‘The first tip
is…, …’}
这种轻微的差别可能听起来有点过分,但实际上它使你的文档更有用。读者可以将
这些行复制到 shell 中,理解将一个 URL 解析为一个参数,并返回一个包含博客条目的迭
代器。
当然,给出一个现实的例子并不总是可能或可行的。这对于非常通用的代码尤其如此。
即使这本书也有很少出现的含糊不清的 foo 和 bar 字符串,在一些名称上下文不重要的地
方。总之,你应该总是努力把这种不切实际的例子的数量减少到最小。
使用轻量且充分的方法
在大多数敏捷方法中,文档不是首要的。相比细节文档,使软件正常工作是最重要的事
情。因此,Scott Ambler 在他的书 Agile Modeling:Effective Practices for eXtreme Programming
and the Unified Process 中解释了一个好的做法是定义真正的文档需求,而不是创建一个详
尽的文档集。
例如,让我们看一个简单项目 ianitor 的示例文档——它在 GitHub https://github.com/
ClearcodeHQ/ianitor 上。它是一个帮助在 Consul 服务发现集群中注册进程的工具,因此它
主要面向系统管理员。如果你看看它的文档,你会发现这只是一个单一的文档(README.md
文件)。它只解释了它是如何工作和如何使用它。从管理员的角度来看,这是足够的。他们
只需要知道如何配置和运行工具,没有其他人希望使用 ianitor。本文档通过回答这样一
个问题“我如何在我的服务器上使用 ianitor?”来限制其范围。
使用模板
维基百科上的每一页的布局都是相似的。一侧有用于总结日期或事实的文本框。在文
档的开头总是有一个目录,这个目录包含指向同一页面中的标题的链接。在结尾处总是有
一个参考部分。
用户习惯了它。例如,他们知道他们可以快速查看目录,如果他们没有找到他们正在
寻找的信息,他们将直接访问参考部分,以查看他们是否可以找到关于该主题的另一个网
站。这适用于维基百科上的任何页面。学习维基百科的方式可以让你更高效。
因此,使用模板强制文档的通用模式,可以使人们更有效地使用它们。他们习惯了结构,知道如何快速阅读它。
为每种文档提供模板还为作者提供了一个快速开始的脚手架。
reStructuredText 入门
reStructuredText 也被称为 reST(参考 http://docutils.sourceforge.net/rst.html)。它是一种
在 Python 社区中广泛用于文档化软件包的纯文本标记语言。reST 的优势在于,文本仍然可
读,因为标记语法不会像 LaTeX 那样混淆文本。
这里有一个文档示例,如下所示:
=====
Title
=====
Section 1
=========
Thiswordhas emphasis.
Section 2
=========
Subsection
::::::::::
Text.
reST 包含在 docutils 中,这个包提供了一套脚本来将 reST 文件转换为各种格式,
如 HTML,LaTeX,XML 或甚至 S5,Eric Meyer 的幻灯片对它进行了系统地显示(参考
http://meyerweb.com/eric/tools/s5)。
作者可以专注于内容,然后根据需要来决定如何渲染它。例如,Python 本身被记录在
reST 中,然后被渲染成 HTML 用来构建网站 http://docs.python.org,也可以渲染成很多其他
格式。
开始编写 reST 文档需要知道的最小元素集合如下。
● 章节结构(Section structure)。
● 列表(Lists)。
● 行内标记(Inline markup)。
● 文字块(Literal block)。
● 链接(Links)。
这一节是对语法的一个快速概述。包含更多信息的快速参考,这是开始使用 reST 的好
地方。
通过安装 docutils 来安装 reStructuredText:
$ pip install docutils
例如,docutils 包提供的 rst2html 脚本将给定的 reST 文件的输出为 HTML:
$ more text.txt
Title
=====
content.
$ rst2html.py text.txt

<?xml version="1.0" encoding="utf-8" ?>

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/13 12:49:09

DLSS Swapper终极指南:5分钟免费解锁游戏性能新高度

DLSS Swapper终极指南&#xff1a;5分钟免费解锁游戏性能新高度 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款革命性的开源工具&#xff0c;专为游戏玩家设计&#xff0c;能够智能管理、下载和替换…

作者头像 李华
网站建设 2026/6/13 12:48:36

Adobe-GenP 3.0:三步解锁Adobe全家桶的专业级免费方案

Adobe-GenP 3.0&#xff1a;三步解锁Adobe全家桶的专业级免费方案 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP 你是否渴望使用Photoshop、Premiere Pro、Illustr…

作者头像 李华
网站建设 2026/6/13 12:47:53

MetaboAnalystR 4.0:构建高效LC-MS代谢组学分析的专业R语言解决方案

MetaboAnalystR 4.0&#xff1a;构建高效LC-MS代谢组学分析的专业R语言解决方案 【免费下载链接】MetaboAnalystR R package for MetaboAnalyst 项目地址: https://gitcode.com/gh_mirrors/me/MetaboAnalystR 在当今生物医学研究中&#xff0c;LC-MS代谢组学已成为揭示疾…

作者头像 李华
网站建设 2026/6/13 12:43:54

mtk平台仪表投屏实现

背景&#xff1a;mtk平台仪表yocto系统&#xff0c;不支持仪表投屏1. 架构 1.1 yocto中间件设计1.2 pc程序设计数据流 设备(RTSP) ──→ MyRTSP (GStreamer) ──→ SharedFrame queue ──→ MyWindow (OpenGL渲染)

作者头像 李华
网站建设 2026/6/13 12:43:31

终极GTA V安全增强指南:YimMenu让游戏体验全面升级

终极GTA V安全增强指南&#xff1a;YimMenu让游戏体验全面升级 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu…

作者头像 李华
网站建设 2026/6/13 12:43:07

[智能体-383]:智能时代人机交互范式迁移:传统GUI交互触顶衰退,自然语言与生成式UI成为新一代主流

在移动互联网时代的二十年发展周期中&#xff0c;以安卓、iOS为代表的图形用户界面&#xff08;GUI&#xff09;主导了全球人机交互体系。整个移动产业的产品迭代、设计升级、应用开发、系统优化&#xff0c;长期围绕界面美化、触控逻辑、层级优化、动效打磨、组件标准化展开。…

作者头像 李华