鱼C论坛

 找回密码
 立即注册
查看: 2186|回复: 2

[技术交流] Python 小技巧 056:Python 的 pydoc(2. 自动生成文档)

[复制链接]
发表于 2020-1-23 22:11:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python pydoc 自动生成文档


当你编写准备发布到 Pypi 的模块时,通常要编写文档让其他人明白你的模块怎么用,可是文档比代码更占空间。Python 提供的工具 pydoc 也可以用于自动为你的模块生成文档。

下面是一个简单的例子:

创建一个 demo.py 文件,该模块模拟 timeit 测量代码执行所需的时间:
# -*- coding: utf-8 -*-

"""测量代码执行时间的模块"""

from time import perf_counter


def timeit(stmt="pass") -> float:
    """测量指定代码段执行所需的时间"""
    start = perf_counter()
    exec(stmt)
    return perf_counter() - start

之后打开 cmd,切换到模块目录,执行 python -m pydoc demo(模块名不需要加后缀 .py),打印的内容就是 Pydoc 为你生成的文档(除了第一行 Help on module demo:):
> python -m pydoc demo
Help on module demo:

NAME
    demo - 测量代码执行时间的模块

FUNCTIONS
    perf_counter(...)
        perf_counter() -> float

        Performance counter for benchmarking.

    timeit(stmt='pass') -> float
        测量指定代码段执行所需的时间

FILE
    E:\demo.py

将文档拷贝到模块中,完事Pydoc 模块的确会让你事半功倍。
# -*- coding: utf-8 -*-

"""
NAME
    demo - 测量代码执行时间的模块

FUNCTIONS
    perf_counter(...)
        perf_counter() -> float

        Performance counter for benchmarking.

    timeit(stmt='pass') -> float
        测量指定代码段执行所需的时间
"""

from time import perf_counter


def timeit(stmt="pass") -> float:
    """测量指定代码段执行所需的时间"""
    start = perf_counter()
    exec(stmt)
    return perf_counter() - start

Pydoc 还可以为你生成 HTML 文档。输入 python -m pydoc -w {模块名} 即可(在例子中是 python -m pydoc -w demo):
> python -m pydoc -w demo
wrote demo.html

提示已经将文档写入 demo.html。让我们用浏览器打开 demo.html:

1.png

不错,排版勉强能接受

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-23 23:37:06 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-1-24 11:11:22 From FishC Mobile | 显示全部楼层
这……html有点难以接受
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 14:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表