高阶函数,满足 接收函数作为参数或者返回有函数
函数可以当做参数传递给另一个函数
1 def foo(n):2 print(n)3 def bar(name):4 print("my name is %s" %name)5 foo(bar("yangtuo"))
返回值可以是函数
1 def bar():2 print("from bar")3 def foo():4 print("from foo")5 return bar6 7 n = foo()8 n()
返回值也可以是自己,即递归
1 def foo():2 print("from foo")3 return foo4 5 n = foo()6 n()
返回值可以函数运算的结果
1 def bar():2 print("from bar")3 def foo():4 print("from foo")5 return bar()6 foo()7 n = foo()8 print(n)
面向过程 拆分步骤,可读性好 没有返回值 函数式 编程余元定义的函数 + 数学意义的函数 精简代码,但是可读性差 不存在赋值操作 不修改变量,函数即变量