编写高质量代码-读书笔记(一)

2019-03-01  本文已影响0人  jxy2018


代码规范

const

const集中到一个文件,并且使之只读不改。

assert

  1. 在执行时,使用 python -O assert 可以禁止断言。
  2. 断言应用在正常逻辑总为真的情况,不要滥用。如果本身就会抛出python异常的就不要用断言,如类型不匹配,越界或除0之类的
  3. 用户的输入用条件来判断,然后抛出异常,而非assert
  4. 在函数调用后,确认返回值是否合理,可以用断言

性能

数据交互

数据交换 x,y = y,x 比中间变量性能更高

or/and顺序

对于or和and,or前面应该加为True频率比较高的,而and前面应该加True频率比较低的

yield lazy执行

yield (lazy执行, 可以写无限循环而不会进入死循环,只有需要计算的时候才产生结果)

def seq():
    i = 0
    while True:
        yield i
        i += 1

seqs = seq()
print(seqs)
i = 0
for k in seqs:
    print(k)
    i += 1
    if i > 5:
        break

执行结果:

0
1
2
3
4
5

enumerate

使用enumerate来获取迭代索引和值,它也是lazy的,而且简洁。

安全性

eval

出于安全性的考虑,尽量不要使用eval或os.system,因为用户有可能传进来一些不好的操作,无法控制。

上一篇 下一篇

猜你喜欢

热点阅读