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