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

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" ?>

http://www.jsqmd.com/news/1005387/

相关文章:

  • 2026贵港市爱马仕、香奈儿、路易威登LV包包专业回收,2026甄选回收店铺排行榜推荐 - 谊识预商务
  • 2026巴音郭楞市迪奥、古驰、普拉达包包专业回收,2026甄选回收店铺排行榜推荐 - 谊识预商务
  • 10分钟精通ExifToolGui:让照片元数据管理变得轻松简单
  • 北京靠谱字画回收机构排名,高分正规可信赖 - 光耀华夏品牌榜
  • MiGPT终极指南:3步将小爱音箱升级为AI智能助手
  • 效率飙升10倍!Claude 5双模型发布
  • 宽频高敏・全域监测|鼎讯 DXMP 系列,打造风电射频侦测新范式
  • 2026贵阳市迪奥、古驰、普拉达包包专业回收,2026甄选回收店铺排行榜推荐 - 谊识预商务
  • 5个提醒,让你远离“数据呆”
  • 手写自动微分引擎:从计算导数到梯度验证的工程实践
  • 2026巴中市圣罗兰+赛琳+巴黎世家包包专业回收,2026甄选回收店铺排行榜推荐 - 谊识预商务
  • 2026宝鸡市爱马仕、香奈儿、路易威登LV包包专业回收,2026甄选回收店铺排行榜推荐 - 谊识预商务
  • 如何快速掌握NifSkope:面向游戏开发者的3D模型编辑终极指南
  • 本地大模型可控联网架构:安全代理+实时RAG增强
  • MiGPT终极指南:如何将小爱音箱改造为智能AI语音助手
  • MC9328MX1 LCD与SPI控制器底层编程与调试实战
  • 3分钟上手biliTickerBuy:开源B站会员购抢票工具完整指南
  • ncmdump:3步解锁网易云音乐NCM格式的终极指南
  • 2026学生专用大屏护眼英语学习机怎么选?中小学款深度测评 - 博客万
  • 2026国内雷达测速仪厂家推荐 雷达测速抓拍系统实测推荐 - 速递信息
  • 2026常德市圣罗兰+赛琳+巴黎世家包包专业回收,2026甄选回收店铺排行榜推荐 - 谊识预商务
  • 3分钟学会diff-pdf:终极免费工具帮你快速对比PDF文件差异
  • 2026贺州市芬迪、MCM、罗意威包包专业回收,2026甄选回收店铺排行榜推荐 - 谊识预商务
  • 【鄞州区】除甲醛公司深度测评:2026 鄞州业主如何避开行业乱象选对专业机构 - 泓动
  • Mac NTFS写入终极解决方案:三步实现NTFS读写自由
  • 【2027最新】基于SpringBoot+Vue的Web农产品直卖平台管理系统源码+MyBatis+MySQL
  • 微博图片批量下载神器:无需登录,3分钟搞定内容创作素材库
  • 3分钟游戏性能革命:DLSS Swapper如何让老旧显卡焕发新生
  • 一文搞定MOS管——为什么需要静电增强型MOS
  • (十一)YModbus CLI命令行工具使用