【落叶272】“老兵爱学习”之《颠覆你的Python接口自动化测

这是《落叶》文集里第 272 片落叶,希望你能喜欢,不为别的,只为这份坚持。
自己挖坑自己填,好记性不如烂笔头,尽在《老兵爱学习》
【已学习】
第四节课:Python 操作 MySQL
【问题五】:
昨天群里有同学遇到个问题,如下图。编译的时候报语法错误,出错的行是:except pymysql.Error , e:

【原因及解决方法】:
我第一反应是怀疑 pymysql 跟 import 语句里的模块名不一致导致的,很快就被排除不是的。另一个同学怀疑他是不是 pymysql 安装的不正确,导致不生效,于是我们建议他使用 MySQLdb。这时候,那位同学才说出他的 Python 版本是3.x,不是我们课程要求的 2.7 版本。
此处总结了第一个要点:在问题中,一定要说清楚问题涉及到的工具或包的版本。恰巧 Python 2.7 和 Python 3.x 是两个大的版本分支,各自支持的库并不完全一致,2.7 里支持的一些库,在3.x 里已经不支持了,或者说还没有支持。
在明确了出问题的 Python 版本之后,一位同学很快就指出了原因所在。如下图:Python 3.x 在异常处理的语法中,except pymysql.Error , e: 应该要写成:except pymysql.Error as e:
此处除了得知从 2.7 升级到 3.x 后,不仅仅是一些原来支持的库还没有很好地支持 3.x之外,就连一些原有的语法都有所变化。这其实给版本迁移带来了不少的成本,也就是在将 Python 2.7 开发的程序升级为 Python 3.x 时,需要注意原先使用的库是否依然支持,还是换了个名字,原先一些方法的用法是否还保持一致,以及以前的一些语法和写法,在新版本里是否有优化和改变。

【待学习】
第五节课:Python 发送 HTTP 请求(2017.08.18 周五晚 21:00)
作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵