《改善python的91建议》笔记
概述
文如其名,是由91篇关系不是很紧密的python文章集合而成
这本书和国内很多技术类书籍一样,排版的代码缩进很有问题,还有文章有些观点并不正确。
除此之外,还是有很多有用的知识点,需要读者自己辨别。
笔记
Python的包和模块规范
结构日益规范化。现在的库或框架跟随了以下潮流:
- 包和模块的命名采用小写、单数形式,而且短小。
- 包通常仅作为命名空间,如只包含空的
__init__.py文件。
x, y=y, x赋值
Python表达式计算的顺序说起。
一般情况下Python表达式的计算顺序是从左到右,但遇到表达式赋值的时候表达式右边的操作数先于左边的操作数计算,因此表达式expr3, expr4=exprl, expr2的计算顺序是exprl, expr2 —> expr3, expr4。
因此对于表达式x, y=y, x,其在内存中执行的顺序如下:
- 先计算右边的表达式
y,x,因此先在内存中创建元组(y,x),其标示符和值分别为y、x及其对应的值,其中y和x是在初始化时已经存在于内存中的对象。 - 计算表达式左边的值并进行赋值,元组被依次分配给左边的标示符,通过解压缩(unpacking),元组第一标识符(为y)分配给左边第一个元素(此时为X),元组第二个标识符(为x)分配给第二个元素(此时为y),从而达到x、y值交换的目的。
提高and、or表达式的效率
python的and、or表达式并不会将每个值都算出,一旦整个表达式的值已知,其他部分就不会被计算,并且返回最后计算的那个值。
因此,在编程过程中,如果对于or条件表达式应该将值为真可能性较高的变量写在or的前面;
而对于and则相反,应该推后。


