Kane BlueriverKane Blueriver

Python 中的惰性计算

什么是惰性计算

惰性计算、惰性求值,是计算机编程中的一个概念,也是函数式编程的一个重要特征。它的目的在于最小化计算机的工作任务,不到必须的时候尽可能地避免执行代码。

Python 是一个支持多种范式的编程语言,map / reduce 等函数式编程的招牌角色在 Python 中也起着重要角色,但 Python 并不是一门纯粹的函数式编程语言,很多函数式编程 的重要特性都没有得到完全支持。

Python 是否支持惰性计算

or 运算

Python 中的 or 关键字就是个惰性计算的实例,在 a or b 表达式中, 如果 a 为真则会终止命令的继续执行,即使后面的代码会报出异常。

尾递归

惰性计算对于函数式编程的一个重要意义在于“尾递归”的优化。尾递归和惰性计算一样,都是函数式编程中的重要特性。

Django 中的惰性计算

虽然在语言层面没有得到完全支持,但是 Django 等框架和库并没有放弃惰性计算的性能优势,其 lazy(), ugettext_lazy() 等函数就是惰性计算的实现。

使用生成器实现惰性计算模式

http://swizec.com/blog/python-and-lazy-evaluation/swizec/5148