标准库附带了许多模块,这些模块既可以用作模块,也可以用作命令行实用程序。
dis 模块
dis 模块是 Python 反汇编器。它将字节码转换为更适合人类使用的格式。
您可以从命令行运行反汇编程序。它编译给定的脚本并将反汇编的字节码打印到 STDOUT。您也可以将 dis 用作模块。dis 函数将类、方法、函数或代码对象作为其单个参数。
例
这将产生以下结果 -
3 0 LOAD_CONST 1 (10)
2 STORE_FAST 0 (vara)
4 4 LOAD_CONST 2 (20)
6 STORE_FAST 1 (varb)
6 8 LOAD_FAST 0 (vara)
10 LOAD_FAST 1 (varb)
12 BINARY_ADD
14 STORE_FAST 2 (sum)
7 16 LOAD_GLOBAL 0 (print)
18 LOAD_CONST 3 ('vara + varb = %d')
20 LOAD_FAST 2 (sum)
22 BINARY_MODULO
24 CALL_FUNCTION 1
26 POP_TOP
28 LOAD_CONST 0 (None)
30 RETURN_VALUE
2 STORE_FAST 0 (vara)
4 4 LOAD_CONST 2 (20)
6 STORE_FAST 1 (varb)
6 8 LOAD_FAST 0 (vara)
10 LOAD_FAST 1 (varb)
12 BINARY_ADD
14 STORE_FAST 2 (sum)
7 16 LOAD_GLOBAL 0 (print)
18 LOAD_CONST 3 ('vara + varb = %d')
20 LOAD_FAST 2 (sum)
22 BINARY_MODULO
24 CALL_FUNCTION 1
26 POP_TOP
28 LOAD_CONST 0 (None)
30 RETURN_VALUE
pdb 模块
pdb 模块是标准的 Python 调试器。它基于 bdb 调试器框架。
您可以从命令行运行调试器(键入 n [或 next] 转到下一行并帮助获取可用命令的列表)-
例在尝试运行 pdb.py 之前,请将路径正确设置为 Python lib 目录。所以让我们试试 以上面的例子 sum.py -
profile 模块
profile 模块是标准的 Python 分析器。您可以从命令行运行分析器 -
例让我们尝试分析以下程序 -
现在,尝试对此文件运行 cProfile.py sum.py 如下所示 -
tabnanny 模块
tabnanny 模块检查 Python 源文件是否存在不明确的缩进。如果文件以一种不会缩进的方式混合制表符和空格,那么无论你使用什么制表符大小,保姆都会抱怨。
例让我们尝试分析以下程序 -
如果您尝试使用 tabnanny.py 的正确文件,那么它不会抱怨如下 -
$tabnanny.py -v sum.py
'sum.py': Clean bill of health.
'sum.py': Clean bill of health.