Lazy evaluation:延迟计算,惰性计算,指的是仅仅在真正需要执行的时候才计算表达式。
好处:
- 避免不必要的计算,带来性能上的提升,
比如 if x and y,if x or y
如果对于or条件表达式,应该将值为真可能性较高的变量写在or的前面,而and则应该推后 - 节省空间,使得无限循环的数据结构成为可能,
比如生成器,仅在每次需要计算的时候才通过yield产生所需要的元素
from itertools import islice
def fib():
a, b = 0, 1
while True:
yield a
a, b = b, a+b
print(list(islice(fib(),5)))
结果:[0, 1, 1, 2, 3]
网友评论