高阶函数,满足
接收函数作为参数或者返回有函数
函数可以当做参数传递给另一个函数
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)
面向过程
拆分步骤,可读性好
没有返回值
函数式
编程余元定义的函数 + 数学意义的函数
精简代码,但是可读性差
不存在赋值操作
不修改变量,函数即变量