一,编程的方法论:面向过程,函数式,面向对象
面向过程:没有返回值的,找到解决问题的入口,按照一个固定的流程去模拟解决问题的流程
二:函数式编程:函数式=编程语言定义的函数+数学意义的函数
例一:不可变:不用变量保存状态,不修改变量
#非函数式 a=1 def ic_test1(): global a a+=1 return a ic_test1() print a #函数式 a1=1 def ic_text2(a1): return a1+1 print ic_text2(2) print a
例二: 第一类对象:函数即"变量"
1,函数名可以当做参数传递
#把函数当做参数传给另外一个函数 def foo(n): print (n) def bar(name): print ('my name is %s' %name) return bar foo(bar)#函数当做变量被赋值,打印输出的是bar函数的内存地址 foo(bar("wnagyue"))
2,返回值可以是函数名
#返回值中包含函数 def bar(): print "from bar" def foo(): print "frm foo" return bar n=foo() n() def handle(): print "from handle" return handle h=handle() h() #输出from handle from handle
三:高阶函数:1,把函数当做参数传递给另外一个函数 2,返回值中包含函数 两种满足其一就可以