【Python】Effective Python 读书笔记

用辅助函数来取代复杂的表达式 P24

表达式如果变得比较复杂,那就应该考虑将其拆解成小块,并把这些逻辑移入辅助函数中。这会另代码更加易读,它比原来那种密集的写法更好。编写Python程序时,不要一味追求过于紧凑的写法,那样会写出非常复杂的表达式。

开发者很容易过度运用Python的语法特性,从而写出那种特别复杂并且难以理解的单行表达式。

请把复杂的表达式移入辅助函数之中,如果要反复使用相同的逻辑,那就更应该这么做。

使用if/else表达式,要比用orand这样的Boolean操作符写成的表达式更加清晰。

了解序列切割的办法

不重新分配新的列表:

a = [1,2,3,4,5,6,7]
b = a  # b与a指向同一个对象,改变b的值会改变a

重新赋值:

a = [1,2,3,4,5,6,7]
b = a[:]  # b与a指向不同的对象,改变b的值,不会对a有影响

内置的zip函数可以平行地遍历多个迭代器

如果提供的迭代器长度不等,那么zip就会自动提前终止。

用异常来表示特殊情况,而不要返回None

不返回None,而是把异常抛给上一级,使得调用者必须应对它。

用None这个返回值来表示特殊意义的函数,很容易使调用者犯错,因为None和0及空字符串之类的值,在条件表达式里都会评估为False。

函数在遇到特殊情况时,应该抛出异常,而不要返回None。调用者看到该函数的文档中所描述的异常之后,应该就会编写响应的代码来处理他们了。

发布了552 篇原创文章 · 获赞 201 · 访问量 18万+

猜你喜欢

转载自blog.csdn.net/sinat_42483341/article/details/103656312