函数是Python内建支持的一种封装,通过把大段代码拆成函数,再一层一层的调用函数,就可把复杂任务分解成简单的任务
这种分解可以称之为面向过程的程序设计
函数就是面向过程的程序设计的基本单元
函数式编程,虽也可以归结到面向过程的程序设计,但其思想更接近数学计算
计算机,计算,编程语言
在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言
在计算的层次上,则指数学意义上的计算,越是抽象的计算,离计算机硬件越远
对应到编程语言,则
越低级的语言,越贴近计算机,抽象程度低,执行效率高,比如C语言
越高级的语言,越贴近计算,抽象程度高,执行效率低,比如Lisp语言
关于函数的副作用
对于纯函数,只要输入是确定的,输出就是确定的,就是一个输入只能有一种输出,这种函数称之为没有副作用
对于有些函数,它允许使用变量,由于函数内部的变量状态不确定,同样一个输入可能得到不同的输出,这种函数称之为有副作用
关于函数式编程
函数式编程就是一种抽象程度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量,也就是没有副作用
函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数
Python与函数式编程
Python对函数式编程提供部分支持
由于Python允许使用变量,因此Python不是纯函数式编程语言