博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python参考手册--第10、11章执行环境、调试
阅读量:5943 次
发布时间:2019-06-19

本文共 1336 字,大约阅读时间需要 4 分钟。

1.解释器选项和环境

python [options] [-c cmd | filename | - ] [args]

例如:python -m pdb test.py

以脚本的形式运行库模块pdb

2.交互模式

-i可进行交互模式,交互模式下的运行结果保存在_中

>>>7+3

>>>_+2

12

3.文档字符串和doctest模块

函数、类、模块第一行通常用'''************'''作为文档字符串来给出描述信息。包含文档字符串被认为是一种良好的编程风格。

doctest模块:

doctest.testmod(moduleName)在指定的模块上运行测试,返回测试失败的数量和执行的测试总数。

使用doctest会产生很长和负责的文档字符串,建议使用unittest

4.unittest模块

可以单独建一个测试文件,也可在原来文件上附件上测试类,通过在__main__入口处引导进入单元测试,单元测试会执行单元测试类的所有test开头的方法。

5.pdb模块

1)启动调试器:

pdb.run('moduleA.start()')

2)命令行启动调试器:

python -m pdb moduleA.py

6.profile模块

profile和cprofile模块用于收集探测信息

python -m cprofile moduleA.py

运行探测器之后将生成一个报告,显示程序耗时、函数调用、内存占用。对优化相当有帮助。

7.优化

1)时间测试

time.clock()

time.time()

timeit('a = [1,2,3,4,6]')

等进行时间消耗测试

2)内存测试

sum(sys.getsizeof(x) for x in items)

7.反汇编

from dis import dis

dis(spilt)

8.程序优化思路

1)利用二八定律(帕累托定律),对程序中耗时最多的那部分代码进行时间分析、内存分析,重点优化。

2)不要添加额外的层:不要用dict('name':'jack','age':29) 这样增加了一层dict函数调用。

3)利用字典构造类和实例:

timeid(studentA = {'name':'jack','age':29})优于:timeid(studentA = Student('jack',29))

4)使用__slots__:

如果程序创建了用户定义类的大量实例,可以在类定义中使用__slots__属性。

__slots__ = ['name','age']告诉类Student的属性是['name','age']。使用__slots__ 的类会限制属性名称的设置,这种类不使用字典存储实例数据,采用更高效的数据结构,内存占用更少,访问更快。但是会破坏__dict__

5)避免使用(.)

x.name查找属性时会先在环境中查找变量x,然后再在x上查找属性name。应该先局部化变量name,sname = x.name,供以后使用。

6)异常能避免就避免:

不要在代码中对常见的情况进行异常处理,而应该用if else分支进行处理。

7)鼓励使用函数编程和迭代

8)使用装饰器和元类

转载地址:http://spwxx.baihongyu.com/

你可能感兴趣的文章
tomcat 8.0虚拟机配置文档
查看>>
pxc群集搭建
查看>>
JS中加载cssText延时
查看>>
常用的脚本编程知识点
查看>>
XILINX_zynq_详解(6)
查看>>
计算机网络术语总结4
查看>>
新手小白 python之路 Day3 (string 常用方法)
查看>>
soapUI的简单使用(webservice接口功能测试)
查看>>
框架 Hibernate
查看>>
python-while循环
查看>>
手机端上传图片及java后台接收和ajaxForm提交
查看>>
【MSDN 目录】C#编程指南、C#教程、ASP.NET参考、ASP.NET 4、.NET Framework类库
查看>>
jquery 怎么触发select的change事件
查看>>
angularjs指令(二)
查看>>
(原創) 如何建立一个thread? (OS) (Linux) (C/C++) (C)
查看>>
<气场>读书笔记
查看>>
领域驱动设计,构建简单的新闻系统,20分钟够吗?
查看>>
web安全问题分析与防御总结
查看>>
React 组件通信之 React context
查看>>
ZooKeeper 可视化监控 zkui
查看>>