在本文中,您将了解什么是函数范型,以及如何在Python中使用函数式编程。在Python中,函数式编程中的map和filter可以做与列表相同的事情。这打破了Python的禅宗规则之一,因此函数式编程的这些部分不被认为是“Python式的”。但是由于函数式编程高阶编程的必经之路,所以我们需要了解甚至熟练掌握。
命令范式和函数范式
我们先对比一下编程中的命令范式两个概念:
在命令式范式中,您通过给计算机一个任务序列来完成任务,然后它执行这些任务。在执行它们时,它可以改变状态。例如,假设你一开始把A设为5,然后你改变A的值,你有变量,在这个意义上,变量内部的值是变化的。
在函数范型中,你不告诉计算机要做什么,而是告诉它是什么。例如:一个数的最大公约数是多少,从1到n的乘积是多少,等等。因此,变量不能改变。一旦你设置了一个变量,它就会一直保持这种状态(注意,在纯函数语言中它们不被称为变量)。所谓"副作用"(side effect),指的是函数内部与外部互动(最典型的情况,就是修改全局变量的值),产生运算以外的其他结果。函数式编程强调没有"副作用",意味着函数要保持独立,所有功能就是返回一个新的值,没有其他行为,尤其是不得修改外部变量的值。
让我们来看一个典型Python