一,编程的方法论:面向过程,函数式,面向对象
面向过程:没有返回值的,找到解决问题的入口,按照一个固定的流程去模拟解决问题的流程
二:函数式编程:函数式=编程语言定义的函数+数学意义的函数
例一:不可变:不用变量保存状态,不修改变量
#非函数式
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,返回值中包含函数 两种满足其一就可以
浙公网安备 33010602011771号