Python高质量代码--2

1、利用assert语句发现问题

1)断言是有代价的,它会对 性能产生一定的影响。python并没有严格定义调试和发布模式之间的区别,通常禁用断言的方法是在运行脚本的时候加上- O标志,例如,python -O manage.py

2)不要滥用断言,这是使用断言最基本的原则;

3)如果python本身的异常能够处理就不要再使用断言;

4)不要使用断言来检查用户的输入,最好使用条件判断来进行判断;

5)在函数调用后,当需要确认返回值是否合理时可以使用断言;

6)当条件是业务逻辑继续下去的先决条件时可以使用断言,

2、数据交换值

1)不推荐使用中间变量,直接使用下面交换;

>>> x = 3
>>> y = 4
>>> x, y = y, x
>>> print(x)
4
>>> print(y)
3
>>> 

2)python计算顺序从左到右,但当遇到表达式赋值时表达式的操作数先于左边的操作数计算,因此表达式expr3, expr4 = expr1, expr2的计算顺序是  expr1, expr2 --> expr3, expr4;

3、充分利用lazy evaluation

1)惰性计算指的是仅仅在真正需要执行的时候才计算表达式的值;

2)能够避免不必要的计算,带来性能上的提升;

3)节省空间,使得无限循环的数据结构成为可能;

4、不用type进行类型检查

1)基于内建类型扩展的用户自定义类型,type函数并不能返回准备结果;

2)古典类中,任意的实例的type()返回结果都是<type 'instance'>,这种情况下使用type就会有问题;

3)可以使用isinstance()函数来进行类型检查;

5、除法运算

1)当涉及除法运算的时候尽量先将操作数转换为浮点类型再做运算;

2)因为浮点数在内存中的存储形式,浮点运算结果不可能完全准确;

6、enumerate()

1)不要对字典使用该函数循环迭代,字典默认被转换为序列进行处理;

7、==与is

1)is的作用是检查对象的标识符是否一致,也就是比较两个对象是否是同一块内存地址,相当于id(x) == id(b);

2)==用于比较两个对象的值是否一致,相当于a.__eq__(b)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值