relative import就是局部导入,会默认导入一个最近的方法,方面名字是存储在字典中,也就是一个类似命名空间的东西。
可以用一种叫做absolute import的机制,当然还可以使用一种显式的导入。但是这种显示的导入可能会使文件丢失其结构信息。
推荐使用absolute import
++i不会抛出语法错误
with语句在代码执行完毕后还原进入该代码块的现场
执行过程如下:
计算表达式,返回上下文管理器对象
–exit–()方法
–enter-- 方法
若with中有对象,将–enter–的返回值赋给目标对象
执行with代码
若正常结束 调用–exit–方法 返回值忽略
若异常则调用–exit–并向其传递异常
enter为进入程序上下文,exit为推出程序上下文,类似于os中的中断机制
自己可以定义上下文管理器
else子句
这是一颗语法糖,可以再循环正常执行结束时执行一次else,try没有抛出异常也可以
学习手册中的language reference非常重要
异常处理的几点原则
flask主要开发一种比较小的应用和软件
上下文是指在服务器端获得应用及请求相关信息的对象
编程有两件事,一件是处理数值,另一件是处理字符串
lambda函数就是一个没有名字和返回值的简单函数
无名氏说过,以测试为驱动开发,其中单元测试、代码审查都可以说是很重要的,代码最重要的是可靠而不是过早的进行优化
无名氏也曾说,开发的工作其实都是处理字符串和数值,开发的工作其实就是编写一个包,再将其打包好,每个测试都过了,进行集合,部署,那么这个开发任务就完成了,这本书是先从语法开始,然后到库,设计模式和内部机制,最后到打包,这其实是一个由低向上的结构,对于技术文章来说还是不错的。
这一章是使用工具来辅助项目开发,其中包含pypi安装包,pip和yolk安装管理包,做paster创建包,单元测试,为包编写单元测试,利用测试驱动开发提高可靠性。pylint进行代码风格的检查,进行代码审查,将包发布到pypi
用setuptool进行包的发布,标准库的distutils自带发布功能,就是register和upload命令,注册一个账户,上传一个包,那么就可以了。
代码审查其实很无聊,主要注意几点吧,不要错误的理解代码审查会的目的、代码审查不应该由kpi、对直接管理层最好不要参加、开发者是一个学习机会。一些工具呢,其实有检查表、台面检查
定位角色
充分准备
合理使用技术和工具
控制评审时间和内容
关注技术层面,对事不对人
记录问题,追踪进一步行动
不要忽视附加的培训作用