微信号:grzlwx

介绍:光荣之路官方资讯

代码每天见:Python开发者最常犯的10个错误(八)

2016-02-21 21:59 光荣之路

吴老的《selenium webdriver 实战宝典》出版了!

相关阅读

Python开发者最常犯的10个错误(一)

Python开发者最常犯的10个错误(二)

Python开发者最常犯的10个错误(三)

Python开发者最常犯的10个错误(四)

Python开发者最常犯的10个错误(五)

Python开发者最常犯的10个错误(六)

Python开发者最常犯的10个错误(七)

8.与Python标准库模块名称冲突

  Python拥有非常丰富的模块库,并且支持“开箱即用”。因此,如果不刻意避免,很容易发生命名冲突事件。例如,在你的代码中可能有一个email.py的模块,由于名称一致,它很有可能与Python自带的标准库模块发生冲突。

9.未按规定处理Python2.x和Python3.x之间的区别

  看一下foo.py:

import sys

def bar(i):
    if i == 1:
        raise KeyError(1)
    if i == 2:
        raise ValueError(2)

def bad():
    e = None
    try:
        bar(int(sys.argv[1]))
    except KeyError as e:
        print('key error')
    except ValueError as e:
        print('value error')
    print(e)

bad()

  在Python 2里面可以很好地运行:

$ python foo.py 1
key error
1
$ python foo.py 2
value error
2

  但是在Python 3里:

$ python3 foo.py 1
key error
Traceback (most recent call last):
  File "foo.py", line 19, in <module>
    bad()
  File "foo.py", line 17, in bad
    print(e)
UnboundLocalError: local variable 'e' referenced before assignment

  解决方案:

import sys

def bar(i):
    if i == 1:
        raise KeyError(1)
    if i == 2:
        raise ValueError(2)

def good():
    exception = None
    try:        bar(int(sys.argv[1]))
    except KeyError as e:
        exception = e
        print('key error')
    except ValueError as e:
        exception = e
        print('value error')
    print(exception)

good()

  在Py3k中运行结果:

<code>$ python3 foo.py 1
key error
1
$ python3 foo.py 2
value error
2</code>

  在 Python招聘指南里有许多关于Python 2与Python 3在移植代码时需要关注的注意事项与讨论,大家可以前往看看。

<未完待续>

(作者:juggd 来源:http://www.cnblogs.com/rrxc/p/4664462.html)

公益传播测试知识、技能与正能量!感谢作者!
分享测试生活,思考测试人生!欢迎投稿!
文章图片来自网络,如有侵权请见谅,请联系我们妥善处理。
735821166@qq.com

光荣之路
软件测试培训


官网:www.gloryroad.cn

微信公众号:gloryroadtrain

性能测试QQ群:415987441
测试招聘QQ群: 203715128
自动化3群QQ: 371211499

Python群:457561756

 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 16岁的黑客天才,26岁他自杀了,中间是... 八招让你的Android手机运行如飞 旧物改造!给我一堆废零件,还你一盏大灯 你在学python面向对象的时候,你忽视了这些知识点吗? 原生开发才是王道