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


代码规范

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,因为用户有可能传进来一些不好的操作,无法控制。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容