首页 > python编程之美04.3
头像
帅气的小小全
发布于 2018-11-17 01:02
+ 关注

python编程之美04.3

组织好项目的结构
模块是python的抽象层之一。抽象层让程序员将代码划分成多部分,各自控制相关数据和功能。
函数dir()、gloabals()和loacal()可以帮我们快速探查命名空间内部。
from modu import*
x=sqrt(4)
这是一种糟糕的方式。
较好的方式
from modu import sqrt
x=sqrt(4)
最好的方式
import modu 
x=modu.sqrt(4)
良好的代码可读性是python的核心特点之一。
面向对象编程
python有时也被描述成面向对象的编程语言。
装饰器
装饰器是一个函数或者类的方法,用来包装或者修饰另一个函数或者方法,被修饰的函数或者方法将会替代原来的函数或方法。
由于python中函数是第一等元素,因此可以手动对函数进行包装。
这个机制对于隔离函数或者方法的核心逻辑有很大帮助。例如制表缓存(将耗时函数的结果存入一个查找表中,后续需要时直接查找使用,而不是重新计算)使用装饰器来实现效果更佳。
python是一个动态类型。相比于静态类型语言,动态类型语言意味着变量没有一个固定的类型。
变量被实现为指向对象的指针,因此可以让变量指向值42,然后指向字符串"thanks for all the fish",再指向一个函数。
一个变量只赋值一次通常是一个良好的编程原则。
可变类型和不可变类型
管理依赖
某些python程序包会在源码中包含其外部依赖,通常是存放在名为vendor或packages的目录中。
测试代码
每个测试只做一件事。
必须独立且无依赖。
每个测试用例必须完全独立。
精确好过简约
为测试函数使用长的描述性名称。
速度很重要
把这些繁重的测试用例放到另外的测试集放到另外的测试集中,通过一些定时任务来运行,然后按需执行其他测试用例。
要阅读手册啊,朋友
在开发开始时测试一切,并在开发结束时再次测试一切。
版本控制自动化钩子是极好的。实现一个钩子,在代码推送到共享代码库前运行所有测试是一个好主意。可以直接在版本控制系统中添加钩子,一些IDE也在其环境中提供了一些可以更简单地做到
这一点的方式。
GitHub
Subversion
编码过程中中断时编写一个破坏性测试。
面对歧义,使用测试来调试。
如果测试很难解释,那么是否能找到合作者就只能祝你好运了。
如果测试代码很容易解释,那么测试代码几乎总是一个好想法。
更重要的是,别慌张。
测试的基础知识

找到文件所在目录,输入


如果要执行一个文件内的所有测试,就输入



更多模拟面试

全部评论

(0) 回帖
加载中...
话题 回帖