开发手册 欢迎您!
软件开发者资料库

Python工具/实用工具

Python的工具/实用程序 - 在开始从基础到与实例包括取向的语言,方法,元组,工具/公用事业,异常处理,插座,GUI,一些推广,XML编程Python语法对象的先进理念简单轻松的步骤学习Python。

标准库附带了许多模块,既可以用作模块也可以用作命令行实用程序.

dis 模块

dis模块是Python反汇编程序.它将字节代码转换为稍微适合人类消费的格式.

您可以从命令行运行反汇编程序.它编译给定的脚本并将反汇编的字节代码打印到STDOUT.您也可以使用dis作为模块. dis 函数将类,方法,函数或代码对象作为其单个参数.

示例

#!/usr/bin/pythonimport disdef sum():   vara = 10   varb = 20   sum = vara + varb   print "vara + varb = %d" % sum# Call dis function for the function.dis.dis(sum)

这将产生以下结果 :

6           0 LOAD_CONST               1 (10)              3 STORE_FAST               0 (vara)  7           6 LOAD_CONST               2 (20)              9 STORE_FAST               1 (varb)  9          12 LOAD_FAST                0 (vara)             15 LOAD_FAST                1 (varb)             18 BINARY_ADD             19 STORE_FAST               2 (sum) 10          22 LOAD_CONST               3 ('vara + varb = %d')             25 LOAD_FAST                2 (sum)             28 BINARY_MODULO             29 PRINT_ITEM             30 PRINT_NEWLINE             31 LOAD_CONST               0 (None)             34 RETURN_VALUE

pdb 模块

pdb模块是标准的Python调试器.它基于bdb调试器框架.

您可以从命令行运行调试器(键入n [或next]转到下一行并帮助获取可用列表命令) :

示例

在尝试运行 pdb.py 之前,请将路径正确设置为Python lib目录.因此,让我们尝试上面的示例sum.py :

$pdb.py sum.py> /test/sum.py(3)()-> import dis(Pdb) n> /test/sum.py(5)()-> def sum():(Pdb) n>/test/sum.py(14)()-> dis.dis(sum)(Pdb) n  6           0 LOAD_CONST               1 (10)              3 STORE_FAST               0 (vara)  7           6 LOAD_CONST               2 (20)              9 STORE_FAST               1 (varb)  9          12 LOAD_FAST                0 (vara)             15 LOAD_FAST                1 (varb)             18 BINARY_ADD             19 STORE_FAST               2 (sum) 10          22 LOAD_CONST               3 ('vara + varb = %d')             25 LOAD_FAST                2 (sum)             28 BINARY_MODULO             29 PRINT_ITEM             30 PRINT_NEWLINE             31 LOAD_CONST               0 (None)             34 RETURN_VALUE--Return--> /test/sum.py(14)()->None-v dis.dis(sum)(Pdb) n--Return--> (1)()->None(Pdb)

个人资料模块

配置文件模块是标准的Python配置文件.您可以从命令行运行探查器 :

示例

让我们尝试分析以下程序 :

#!/usr/bin/pythonvara = 10varb = 20sum = vara + varbprint "vara + varb = %d" % sum

现在,尝试运行 cProfile.py 在此文件 sum.py 上,如下 :

$cProfile.py sum.pyvara + varb = 30         4 function calls in 0.000 CPU seconds   Ordered by: standard namencalls  tottime  percall  cumtime  percall filename:lineno   1    0.000    0.000    0.000    0.000 :1()   1    0.000    0.000    0.000    0.000 sum.py:3()   1    0.000    0.000    0.000    0.000 {execfile}   1    0.000    0.000    0.000    0.000 {method ......}

tabnanny 模块

tabnanny模块检查Python源文件是否存在模糊缩进.如果一个文件以一种抛出缩进的方式混合制表符和空格,无论你使用什么标签大小,保姆都会抱怨&减去;

示例

让我们尝试分析以下程序 :

#!/usr/bin/pythonvara = 10varb = 20sum = vara + varbprint "vara + varb = %d" % sum

如果你想用tabnanny.py尝试一个正确的文件,那么就不会抱怨如下 :

$tabnanny.py -v sum.py'sum.py': Clean bill of health.